私の構造の1つにSymfony2を使用しています。モジュールとモジュールに関連するさまざまなファイルを、他のモジュール ファイルから抽象化しておきたいと考えました。
だから例えば。フロントエンドアプリケーションがあります。フロントエンド アプリケーションの下には、ユーザー、ギャラリー モジュールがあります。ユーザーに関連するすべてのファイルを 1 か所に、ギャラリーに関連するすべてのファイルを 1 か所に保管したいと考えています。このようにして、Symfony1.4 で提供されているように、モジュール レベルで抽象化を実現します。
以下は、ここまでに達成したフォルダー構造です。
web/
admin.php
frontend.php
apps/
autoload.php # this autloads the common libaries/vendors for all application eg. CommonBundle
admin/
AppKernel.php
AppAutoload.php # load application specific libraries
bootstrap.php.cache
config/
cache/
.
.
.
frontend/
AppKernel.php
AppAutoload.php
bootstrap.php.cache
config/
cache/
.
.
.
src/
Admin/
UserBundle/
Controller/
UsersController.php
Entity/
User.php
Repository/
UserRepository.php
Resources/
views/
indexUserView.twig.html
DiaryBundle/
Controller/
DiaryController.php
Entity/
Diary.php
Repository/
DiaryRepository.php
Resources/
views/
indexDiaryView.twig.html
Frontend/
UserBundle/
Controller/
UsersController.php
Entity/
User.php
Repository/
UserRepository.php
Resources/
views/
indexUserView.twig.html
DiaryBundle/
Controller/
DiaryController.php
Entity/
Diary.php
Repository/
DiaryRepository.php
Resources/
views/
indexDiaryView.twig.html
上記のフォルダー構造には自信があります。しかし、モジュール レベルではなくアプリケーション レベルでバンドルの作成をサポートしている Symfony2 コミュニティを見つけたので、モジュール レベルでバンドルを作成することの長所と短所を知りたいと思いました。モジュール レベルでの作成で起こりうる落とし穴は何ですか?
モジュールのバンドルを持つことの多くの利点を見ることができます
モジュールのすべてのコントローラー、ビュー、モデルは同じ場所にあり、他のモジュールのコントローラー、モデル、ビューから抽象化されています。このようにして、1 つのモジュールで作業している人は 1 つのフォルダー内でのみ作業する必要があり、module2、つまり Bundle2 で行われている人の作業を気にする必要はありません。
以下のコマンドを使用して、アプリケーション レベルでキャッシュをクリアすることができます。
shell> php apps/frontend/console cache:clear
フロントエンド アプリケーションでバンドルを作成する必要がある場合、コマンドは次のとおりです。src/frontend アプリケーションの下に UserBundle を作成します。また、apps/frontend/AppKernel.php 内にバンドル名を登録します。
shell> php apps/frontend/console generate:bundle --namespace=frontend/userBundle --format=yml
だからすべてがうまくいくようです。しかし、Symfony2 コミュニティはこのアプローチが正しいとは考えていないようです?
私のアプローチの抜け穴を提案してください。