検索

ホームページ  >  に質問  >  本文

Web サイトの MVC モデルにモデルを割り当てる方法。

MVC モデルでは、コントローラーはパイプラインであり、モデルはプロセッサーです。ただし、多くの場合、コントローラーは異なるテーブルからの異なるコンテンツを必要とします。このように、モデルには、get_name、get_info、get_id など、1 つのクエリだけで完了できる多くの関数が存在します。面倒に感じます。実際には、Controller が使用される場所に Query を作成するのが良いのですが、これは MVC のルールに違反します。

現在のアイデアは、最も使用される関数をモデルに配置し、断片化された関数をコントローラーに残すことです。
ぜひご意見ください〜

巴扎黑巴扎黑2822日前621

全員に返信(7)返信します

  • 習慣沉默

    習慣沉默2017-05-16 17:08:54

    細いC、太いM、Cは15行を超えてはなりません

    返事
    0
  • 迷茫

    迷茫2017-05-16 17:08:54

    実際、あなたが言及した問題は、コードに基づいてクエリステートメントを動的に生成するアクティブレコード機能という多くのフレームワークによって解決できます。これは最初にRailsフレームワークで推進され、徐々に他の言語にも実装されました。たとえば

    リーリー 実際、フレームワークがアクティブ レコードをサポートしている場合、主キーに基づくこのような単純なクエリのコードをモデルに記述する必要はありません。モデルの基本クラスは、に基づいて適切なクエリ ステートメントにアセンブルされます。呼び出したメソッド名、およびクエリ結果を返します。

    どの言語を使用しているかはわかりませんが、現在、基本的にすべてのスクリプト言語にアクティブ レコードの実装があり、独自のプロジェクトにこの機能を実装できます。これは、その後の開発にもメリットをもたらします。

    すべての開発者が同じレベルであることを保証できないため、コード内で制約できる問題は、いくつかの設計原則を規定するよりも効果的です。

    返事
    0
  • 世界只因有你

    世界只因有你2017-05-16 17:08:54

    ファウラーのパターンブック、トランザクションスクリプト、テーブルモジュール、ドメインモデルの3つのスタイルを参照できます。

    返事
    0
  • 迷茫

    迷茫2017-05-16 17:08:54

    CIがアクティブレコードをどのように実装するかはわかりませんが、あなたが言及した小さな関数は、多くのPHPアクティブレコード実装で使用される魔法のメソッドであるか、コードジェネレーターが自動的に生成するため、自分で記述する必要はありません。

    たとえば、アクティブレコードは doctrine で次のように実装されます: フィールド bar1、bar2、bar3 を持つテーブル foo がある場合、doctrine はテーブル スキーマに従って 4 つのファイル (FooTable.class.php、FooTableBase.class) を直接生成します。 php 、 Foo.class.php 、 FooBase.class.php 。 2 つの基本ファイルには、getBar1()、setBar1($param) など、自動的に生成された一連のゲッターとセッターが含まれます。ベース ファイルはプログラマ自身が変更することはできません。スキーマの変更に応じて変更されます。非基底クラスは基底クラスを直接継承しているため、見た目がはるかにすっきりしています

    返事
    0
  • 滿天的星座

    滿天的星座2017-05-16 17:08:54

    アプリケーションロジックをモデルに組み込みます

    返事
    0
  • 天蓬老师

    天蓬老师2017-05-16 17:08:54

    レイヤー化をしてみましょう

    コントローラーはページレベルの制御ロジックを担当します。

    返事
    0
  • 迷茫

    迷茫2017-05-16 17:08:54

    。。。。。。。。。。

    返事
    0
  • キャンセル返事