1

我已经使用 Symfony1.4 超过 2.5 年了。现在有一个新项目,客户想为这个项目使用 Symfony2。

在学习了 Symfony2 几个星期之后,现在我几乎没有什么可以决定我的结构,理想情况下可以在 Symfony1.4 中正确组织,但我无法在 Symfony2 中找到完美的方法(可能是因为我对 Symfony2 的经验还不够多)

  1. 我在项目中有 3 个应用程序。我是否为这 3 个应用程序创建捆绑包?或者我是否在 src/ 目录中创建 3 个应用程序文件夹并为各个应用程序的各个模块创建捆绑包?

  2. 如果我们为上述 Q1 的每个应用程序创建包,我无法找到一种方法来组织同一包中的模块明智实体。例如。我有模块前端的用户、事件、日历等模块,我如何在 frontendBundle 中组织模块?

  3. 所有应用程序的通用代码都存储在 Symfony1.4 的根 lib/ 文件夹中,并且过去可以在所有应用程序中访问。我不明白在哪里有这个通用代码?我在供应商文件夹中有那个吗?或者供应商文件夹只是为了像 Doctrine 这样的第三方插入扩展的目的?

请问一些 Symfony2 专家可以澄清这些疑问吗?

4

1 回答 1

1
  1. 您创建 3 个不同的捆绑包

  2. 有两种方法。

    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
    

    我更喜欢第一个。

  3. 您为此创建单独的捆绑包,例如 CommonBundle 或某事。有些人更喜欢创建像供应商库这样的通用代码,然后创建捆绑包,这是您的库和 symfony 应用程序之间的桥梁。

以下是可能对您有用的链接:

于 2012-08-30T07:23:44.743 回答