我使用Symfony1.4已超过2。5年。现在有一个新项目,客户希望将Symfony2用于此项目。
在研究Symfony2几个星期之后,我几乎没有什么东西要决定我的结构,理想情况下可以在Symfony1.4中正确组织,但我找不到完美的方法在Symfony2中做(可能是因为我对Symfony2的经验不多)
我在项目中有3个应用程序。我是否为这3个应用程序创建了捆绑包?或者我在src /目录中创建3个apps文件夹,并为各个应用程序的各个模块创建捆绑包?
如果我们为上面的Q1的每个应用程序创建捆绑包,我无法找到在同一捆绑中组织模块明智实体的方法。例如。我有模块前端的用户,事件,日历等模块,我如何在frontendBundle中组织模块?
所有应用程序的公共代码都存储在Symfony1.4的根lib /文件夹中,以后它可以在所有应用程序中访问。我无法理解在哪里有这个通用代码?我有内部供应商文件夹吗?或者供应商文件夹仅用于第三部分插件扩展,如Doctrine?
请Symfony2的一些专家澄清这些疑问吗?
答案 0 :(得分:1)
您创建了3个不同的包
有两种方法。
a)您可以为实体,存储库等(通常是业务逻辑)创建扁平结构中的所有内容。对于视图,配置,翻译等,您可以基于控制器结构创建单独的命名空间(以及目录)。例如
src/
COMPANY/
App1Bundle/
Controller/
UsersController.php
EventsController.php
...
Entity/
User.php
Even.php
...
Repository/
UserRepository.php
...
Model/
SomeServiceRelatedToUsers.php
SomeServiceRelatedToEvents.php
...
Resources/
views/
Users/
someUserView.twig.html
Events/
someEventsView.twig.html
b)和第二种方法 - 为不同的逻辑部分创建单独的命名空间。例如
src/
COMPANY/
App1Bundle/
Controller/
Users/
UserSpecificController1.php
UserSpecificController2.php
Events/
EventsSpecificController1.php
EventsSpecificController1.php
...
Entity/
Users/
User.php
Events/
Even.php
...
Repository/
Users/
UserRepository.php
...
Model/
Users/
SomeServiceRelatedToUsers.php
Events/
SomeServiceRelatedToEvents.php
...
Resources/
views/
Users/
someUserView.twig.html
Events/
someEventsView.twig.html
我更喜欢第一个。
您可以为此创建单独的包,例如CommonBundle或sth。有些人喜欢用你创建公共代码作为供应商库的方式,然后创建bundle,它是你的库和symfony应用程序之间的桥梁。
以下是可能对您有用的链接: