0

I've read a lot of different things about bundles and the architecture of a Symfony2 project, however I've yet to come to a conclusion on the best practice for an individual project which isn't concerned with re-using bundles etc. The reason being that this is a client specific project.

The application is a large website with different sections such as News, Blog, Multi step application form, Contact, Testimonials etc. Each section will need backend and front end functionality e.g News articles can be added by an administrator in the backend and can be viewed in the front end. THe backend will contain some backend only functionality such as Admin Users and will have an admin log which will log the activity of each admin user, therefore this needs to be accessible within each backend section.

I initially thought about having different bundles for each section i.e AdminUserBundle, NewsBUndle, BlogBundle etc before I quickly realised there is a lot of shared layouts/templates and functionality (such as AdminLog). Therefore, what would you suggest would be best practice for this kind of project? I think I've got three options but open to additional suggestions:

  1. 1 bundle for all with backend and frontend directories within Controller, Views, Tests etc.
  2. 3 bundles - CoreBundle, FrontendBundle and BackendBundle where CoreBundle will contain all shared functionality such as Entities, AdminLog etc.
  3. A bundle for each section with Frontend and Backend directories within Controller, Views, Tests etc. I.e NewsBundle will contain the News Entity and will contain frontend and backend Controllers, Views and Tests. BlogBundle will contain the Blog Entity and frontend and backend COntrollers, Views, Tests etc.

Thanks

4

1 に答える 1

1

Symfony2 のドキュメントによると:

Symfony2 では、バンドルはプラグインに似ていますが、アプリケーションのすべてのコードがバンドル内に存在する点が異なります。バンドルは、PHP クラス、構成、さらにはスタイルシートや Javascript ファイルなど、特定の機能に関連するすべてを格納するディレクトリにすぎません (バンドル システムを参照)。

バンドルは、ビジネス上または機能上の問題を解決する必要があります。したがって、3番目の提案は良い解決策だと思います。

グローバルフォームタイプ、フォームテーマ、カスタムドクトリン関数などの技術的な問題を含む CoreBundle を持つことができます。このバンドルにはビジネス上の問題は含まれていません。

また、他のバンドルには、ニュース用のバンドル、ブログ用のバンドル、コメント用のバンドルなど、ビジネス上の問題のみが含まれている必要があります...

お役に立てば幸いです。

宜しくお願いします

于 2013-05-16T21:39:25.997 に答える