2010-12-16 13 views
1

私はcodeigniterで未完成のアプリケーションを書いて整理する過程にあります。天気が良いのは小さなモデルがたくさんあるので、必要なときだけ必要なものを読み込むだけです。または大きなモデルをいくつか作成して、そのうちの1つだけが必要なのにすべての関数をロードするだけですか?MVC:たくさんの小さなモデルやいくつかの大きなモデルはありますか?

ご協力いただければ幸いです。ありがとう。

答えて

6

パフォーマンスの観点から見ると、いくつかの大きなモデル(ファイル)しか持たないほうがよいでしょう。私はそれがCakephpが非常に遅い(それを追跡していない)主な理由の1つだと信じています。 dependencies Cakephp hadをご覧ください。

しかし、設計の観点からは、SOLIDの原則のために、多くの小さなモデルを用意する方が良いです。例えば、オブジェクトは単一の責任しか持たないはずです。

しかし、プロダクションに移行するときには、より少ないrequire(I/O)文を持つために、すべてのPHPファイルをいくつかの単一ファイルに結合する必要があると思います。 I/Oはパフォーマンスを低下させます。

+0

偉大な答え、非常に有益!ありがとうございます。 – Elgoog

+0

誰かが、require/includeがそのようなパフォーマンスキラーなのだと言っている/ – jamietelin

+0

@Jamietelin、 "dependecies cakephp had" => http://talks.php.net/show/froscon08/25リンクが既にそれを確認しています。また、私は簡単なGoogle検索を行ったときに既にこれについてのSOのトピック=> http://stackoverflow.com/questions/1114843/php-performance-hampered-by-require。また、このリンクは、include/require/etc => http://www.techyouruniverse.com/software/php-performance-tip-require-versus-require_once – Alfred

2

私は実際にはそれが黒と白ではないと思っていますが、どのように使用されているかによって異なります。あなたが常に一緒に使用される機能のグループを持っていれば、純粋にパフォーマンスの観点から、それらをまとめて1つのファイルにまとめるのが理にかなっています。

基本的には、ロードして使用しないコードはすべて無駄なので、無関係なコードのshitloadsを使用して大きなモデルを作成しないようにしたいと同時に、ファイルの数を低く抑える必要があります。

パフォーマンスとロジックが混在するモデルをグループ化してみます。

関連する問題