11

モデルが適切なMVCでどのように機能するかを理解しようとしています。

私の知る限り、MVCのモデルはアプリケーションロジックが発生する場所であり、モデルはMVCの重要な要素です。ビューは単なる表示であり、コントローラーはモデルにいくつかのアクションを実行し、データを返し、その情報をユーザーに表示されるビューに渡すように要求する「接着剤」です。

今、私はあらゆる種類の異なるMVCフレームワークを調査しており、MVCでモデルを使用する方法を理解したいと思います。Symfony 2は、モデルがないため、モデルに関する限り興味深いフレームワークです:)

Symfony2の機能のいくつかを理解するのに問題があり、モデルはSymfony2MVCのどこに適合しますか。

定義上、モデルはドメインロジックとデータベースアクションが行われる場所です。

だから私の質問は

  1. Symfony2にはエンティティとサービスがありますが、これら2つのモデルはSymfonyにありますか?
  2. Symfony2サービスとWebサービスの違いは何ですか?

だから私の質問はSymfony2のモデルはどこにありますか?Modelはドメインオブジェクトとデータマッパーで構成されるレイヤーなので、エンティティはドメインオブジェクトであり、Doctrineはデータマッパーであると推測できますが、それは正しいですか?

そして、Symfony2サービスはどこに適合しますか?

4

3 に答える 3

13
  1. Symfony2 には、他のフレームワークのように MVC の従来の「モデル」部分がありません。ORM/ODM Doctrine のエンティティ/ドキュメントでさえ、フレームワーク自体の一部ではなく、Symfony2 もフレームワークに依存していません。

    Fabien (Symfony フレームワークの作成者) がブログに書いたように、

    「手動でモデルを作成するか、ORM などの他のツールを使用するかはあなた次第です」...応答フレームワーク。」

    読んだだけではわかりにくかったのですが、実際にSymfony2でプログラミングを始めてみると意味がわかりました。

    一方、Symfony2 のサービスは、グローバル タスクを実行する単なるオブジェクトです。Router、doctrine、logger、mailer は、Symfony2 にプリロードされている多くのサービスの一部です。コードのどの部分からでもサービスにアクセスできます。

  2. Symfony2 サービスは Web サービスとはまったく異なります。Symfony2 サービスはシステム内で使用することを意図していますが、Web サービスはマシンからマシンへ、たとえば REST API を介して使用することを意図しています。ただし、サービスの一部として RESTful api を作成できると思います。

于 2012-10-29T12:43:35.307 に答える
-1

Symfony については知りませんが、他の MVC フレームワーク (grails、codeigniter) は既に使用しています。

モデル (エンティティ) はデータを表し、後で検証に使用されるいくつかの制限をモデルで直接定義することができます。たとえば、必要に応じて属性ごとに、長さ、パターンなどを定義できます。

サービスは、symfony に依存している可能性があります。Grails と比較すると、サービスはビジネス コードを配置するコンポーネントです。Java EE では Bean です。サービスは Web サービスになることができますが、必須ではないことに注意してください。ビューをレンダリングする前に何らかの計算を行うために、コントローラによって Service を呼び出すこともできます。

私の答えがお役に立てば幸いです。

于 2012-10-29T12:17:09.537 に答える