Architecture Symfony2确认应用程序和模块的自定义文件夹结构
对我的一个结构使用Symfony2。我想让模块和与模块相关的各种文件从其他模块文件中抽象出来 例如,我有前端应用程序。在前端应用程序下,我有用户、库模块。我想将所有与用户相关的文件保存在一个位置,并将所有与gallery相关的文件保存在一个位置。通过这种方式,我在模块级实现了Symfony1.4中提供的抽象 下面是我在这里实现的文件夹结构Architecture Symfony2确认应用程序和模块的自定义文件夹结构,architecture,symfony,symfony-1.4,Architecture,Symfony,Symfony 1.4,对我的一个结构使用Symfony2。我想让模块和与模块相关的各种文件从其他模块文件中抽象出来 例如,我有前端应用程序。在前端应用程序下,我有用户、库模块。我想将所有与用户相关的文件保存在一个位置,并将所有与gallery相关的文件保存在一个位置。通过这种方式,我在模块级实现了Symfony1.4中提供的抽象 下面是我在这里实现的文件夹结构 web/ admin.php frontend.php apps/ autoload.php #
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社区支持在应用程序级别而不是模块级别创建捆绑包时,我想知道在模块级别创建捆绑包的利弊。在模块级创建时可能出现的陷阱是什么
我可以看到为模块提供捆绑包的许多优点
shell>php应用程序/前端/控制台缓存:清除
shell>php应用程序/frontend/console生成:bundle--namespace=frontend/userBundle--format=yml
请建议在我的方法中使用循环孔?我认为你不应该这样做 Symfony2中没有这样的东西
模块
。有一本食谱
这解释了Symfony2和symfony1之间的区别。我想你说的是不同的应用。您可以有不同的应用程序,但事实并非如此,您应该创建另一个项目并共享捆绑包
我认为您想要实现的这个项目将破坏很多东西,您将无法再使用第三方捆绑包
有一项倡议被称为使Symfony2的项目结构更加RAD友好,但是他们有很多问题,这个项目现在似乎已经死了
引述他们的话:
在当前的实现中,Symfony2几乎在任何地方都有硬编码的路径来捆绑资源。这意味着,为了更改文件夹结构,我们需要覆盖所有那些Symfony2命令、扩展和编译器传递。它在我们的代码库中创建了一个划分,并使用一些bundle引入了BC中断
尼图。。
Symfony1.4和symfony2有很大区别。根据symfony2,您需要在src文件夹下生成应用程序,在这里,应用程序名称将是名称空间,在名称空间下,您可以创建在symfony1.4中称为模块的捆绑包。
命令包括:
php应用程序/控制台生成:bundle--namespace=yournespace/yourBundle--format=yml
php应用程序/控制台缓存:clear--env=prod--no debug
您可以根据需要创建应用程序