私の Symfony2 プロジェクトには、エンティティを保持する ModelBundle と、その ModelBundle を利用するフロントエンド、バックエンドなどの他のバンドルがあります。
いくつかのエンティティ固有のタスクを実行するモデル固有の関数がいくつかあります。これらはどこに置くのですか?
- エンティティ フォルダの隣に別の「モデル」フォルダを作成し、そこにすべての関数を配置しますか?
- これらの関数をアクションとして保持する「ModelBundle」にコントローラーを作成する必要がありますか? 私の考えでは、コントローラーは HTTP 要求を受け取り、HTTP 応答を返すため、このコンテキストには当てはまりません。
- それらをエンティティクラス自体の中に入れますか? これいいですか?また、ORM を再生成すると上書きされる可能性はありますか?
- カスタムリポジトリを探していますか? それらを作成して、「モデル」フォルダーなどに入れることができます。http://www.doctrine-project.org/docs/orm/2.0/en/reference/working-with-objects.html#custom-repositories
PS: 私は Symfony2 が大好きですが、誰もがフレームワークの定義済みのベスト プラクティス セットを持っているととても嬉しく思います :-)