Web サイトの MVC モデルにモデルを割り当てる方法。
巴扎黑
巴扎黑 2017-05-16 17:06:54
0
7
581

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

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

巴扎黑
巴扎黑

全員に返信(7)
習慣沉默

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

いいねを押す +0
迷茫

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

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

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

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

いいねを押す +0
世界只因有你

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

いいねを押す +0
迷茫

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
滿天的星座

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

いいねを押す +0
Peter_Zhu

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

コントローラーはページレベルの制御ロジックを担当します。
いいねを押す +0
迷茫

。。。。。。。。。。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート