3

初めてフレームワーク (codeigniter) を使用して CRM を構築していますが、MVC 方法論を維持しながら、特定のモジュールをどこに配置すべきかを判断するのに苦労しています。このモジュールは、(新しい会社が作成されると) 新しいユーザーを自動的に生成し、指定された電子メール アドレスにログインの詳細を電子メールで送信します。

スキニー コントローラーとファット モデルの考え方はよく知っていますが、必要なすべての情報をコンパイルするには、モジュールが複数の異なるテーブルからデータを要求し、複数のテーブルにデータを挿入する必要があります。

これまでに検討したシナリオ:

  1. ロジックは、ほとんどの情報が由来するモデルにあります。
  2. このモジュールと必要な複数のテーブルだけを扱うまったく新しいモデルを作成します。
  3. 会社の作成を処理するコントローラーにロジックを配置します。
  4. 新しいライブラリまたはヘルパーを作成し、必要なときにモジュールを呼び出します。

スキニー コントローラーとファット モデルは、1 つまたは 2 つのオプションが適切であることを示唆しているように見えますが、モデルはデータベース内の 1 つのテーブルのみを処理する必要があると考えるようになりました。

MVCへの準拠を確実にするための正しいアプローチは何ですか?

4

1 に答える 1

1

Codeigniter を使用すると、MVC アプローチに柔軟に対応できます。したがって、答えは次のオプションです。

  • あなた (またはあなたのチーム) にとって最も理解しやすい
  • コードの保守が最も簡単
  • 他の人にとって最も理解しやすい

他のライブラリがなく、ライブラリを理解していない場合、コードをライブラリに入れる意味はありません。すべてのモデルが「ファット」であるが、1 つのテーブルのみを指している場合と同じです。このモデルを他の 4 つのテーブルも指す唯一のモデルにしますか?

個人的には、この「ロジック」が 1 か所でしか発生しない場合は、それをコントローラーに配置し、コードの各ビットを実行するために必要な 4x モデルを呼び出します。

この「ロジック」が複数の場所で発生する場合は、ライブラリに配置し、必要に応じて呼び出します。

于 2012-05-27T09:38:39.510 に答える