1

Symfony2 の構造とバンドルでモデルを探していましたが、ありません。

Symfony2 にモデルがない理由は何ですか?

MVC は間違った方法ですか?

CodeIgniter は実際にはモデルを使用する必要がないことを知っているので、私はただ興味があります。一部のシナリオでは、すべてをコントローラーまたはモデルに配置できます;)。

誰かがそれをもっと深く説明できますか?

4

3 に答える 3

4

これは、Symfony2 の前者である Fabien Potencier が、Models が Symfony に属しているとは考えていないためです。そのため、代わりに HTTP フレームワークと呼んだのです。彼が書いた次の記事も参照してください: 「Symfony2 とは?」

[...] Symfony2 は、モデル部分ではなく、コントローラー部分、ビュー部分にツールを提供することを目的としていることを知っておく必要があります。モデルを手動で作成するか、ORM などの他のツールを使用するかは、あなた次第です。もちろん、Doctrine2 や Propel などの最もよく知られている ORM には緊密な統合が存在します。ただし、それらはオプションの依存関係です。Symfony2 のコア機能は ORM に依存しておらず、今後も依存しません。


Doctrine2 ORM はリポジトリを使用して、データベースをクラスにマッピングする制御を引き継ぎます。リポジトリにカスタム メソッドが必要な場合は、独自のリポジトリを作成できます。つまり、リポジトリは一種のモデルと見なすことができます。

于 2013-03-13T15:42:09.457 に答える
2

彼らはしたくなかったからです。

難しい答えですが、プログラミングに決まった方法はありません。多くの異なる方法論があり、望むならそれらに従うことを選択できますが、誰もあなたを作ることはできません. この場合、Symfony2 の開発者は、モデルは必要ないと判断しました。

それは、MVC が間違っているという意味ではありません。私はセダンを所有していますが、SUV を所有している場合、それは間違ったことをしているということですか? 仕事を成し遂げるためのちょうど別の方法。

于 2013-03-13T15:41:05.737 に答える
1

適切なMVCには「モデル」がないためです。モデルはレイヤーです。プレゼンテーション層(コントローラー、ビュー、テンプレートを含む)と同じです。

代わりに探す必要があるのは、サービス、マッパー、ドメインオブジェクトです。これらは、モデルレイヤーのより一般的な部分です。

于 2013-03-14T03:24:26.967 に答える