ホームページ > バックエンド開発 > PHPチュートリアル > モデルを呼び出すコントロール層とモデルを呼び出すビュー層の間に問題がありますか?

モデルを呼び出すコントロール層とモデルを呼び出すビュー層の間に問題がありますか?

WBOY
リリース: 2016-09-21 14:12:58
オリジナル
1195 人が閲覧しました

フレーム内で、ビューレイヤーのデータを出力したいです:

最初の方法は、モデルを呼び出すときに、コントローラー層ですべてのデータを組み立てることです。ビュー層テンプレートをレンダリングするときに、データベースを読み取る必要はありません。、php 関数を使用して出力するだけです。直接。 。

2 番目に、コントローラー層で必要なデータを処理し、ビュー層テンプレートのレンダリング時に状況に応じてデータベースを読み取ります。

これら 2 つの状況のうちどちらが良いですか?

----------補足--------------------------

私の意見:私コントローラーメソッドにモデルを導入することは、ファイルをロードし、このメソッドでデータを読み取り、最後にテンプレートファイルを導入することと同じであるため、それは問題ではないと思います。その後、このテンプレートファイルでデータベースを読み取ることは問題ありません, ただし、前者の方がテンプレート コードの
可読性単純さが向上します。実用的には、それほど大きな違いはないのではないかと思います。

----------補足--------------------------

MVCを知っている方機能ですが、先輩がテンプレートでデータベース
クエリ操作を直接実行しているのを見たので、このような質問がありました、助けてください〜

返信内容:

フレーム内で、ビューレイヤーの

データを出力したいです:

最初の方法は、モデルを呼び出すときに、コントローラー層ですべてのデータを組み立てることです。ビュー層テンプレートをレンダリングするときに、データベースを読み取る必要はありません。

、php 関数を使用して出力するだけです。直接。 。

2 番目に、コントローラー層で必要なデータを処理し、ビュー層テンプレートのレンダリング時に状況に応じてデータベースを読み取ります。

これら 2 つの状況のうちどちらが良いですか?

----------補足--------------------------

私の意見:私コントローラーメソッドにモデルを導入することは、ファイルをロードし、このメソッドでデータを読み取り、最後にテンプレートファイルを導入することと同じであるため、それは問題ではないと思います。その後、このテンプレートファイルでデータベースを読み取ることは問題ありません, ただし、前者の方がテンプレート コードの

可読性
単純さが向上します。実用的には、それほど大きな違いはないのではないかと思います。 ----------補足--------------------------

MVCを知っている方機能ですが、先輩がデータベース

クエリ
操作をテンプレートで直接行っているのを見たので、この質問がありました、助けてください〜

最初のタイプ、単一責任

最初にコードを書き始めたとき、労力を節約し、すべての問題を 1 つの方法で解決するために、すべてのデータベース クエリをテンプレートに書きました。プロジェクトが開始されてから 1 ~ 2 か月後になって初めて、ますます大きくなるコード ブロックのために初期段階で節約された労力をこの時点で 2 倍にする必要があり、プロジェクトがさらに拡大するほど、より多くの時間が必要になります。取る。

今私は

を使用しています 第一种

実際には、それぞれに独自の利点があります

もちろん、仕様の観点から見ても、プロジェクト開発の観点から見ても、できるだけ最初のものを使用することをお勧めします。


小規模な個人開発プロジェクトで、あまり多くの機能やその後の拡張がない場合は、2 番目の方法を使用する方が早いです。 いつでも使えて、いつでも持ち運べます

最初の方が良いです!最初のタイプは、ビジネス ロジックが M に配置されるか C に配置されるかによっても異なります。これも人によって異なります。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート