Architecture Symfony1.4组织的Symfony2使用说明

Architecture Symfony1.4组织的Symfony2使用说明,architecture,symfony,symfony-1.4,Architecture,Symfony,Symfony 1.4,我已经使用Symfony1.4超过2.5年了。现在有一个新的项目,客户希望使用Symfony2进行此项目 在学习Symfony2几个星期后,现在我没有什么事情要决定我的结构,理想情况下可以在Symfony1.4中正确组织,但我无法找到在Symfony2中完成的完美方法(可能是因为我对Symfony2的经验还不多) 我在该项目中有3个应用程序。我是否为这3个应用程序创建捆绑包?还是在src/目录中创建3个apps文件夹,并为各个应用程序的各个模块创建捆绑包 如果我们为上面Q1的每个应用程序创建捆绑

我已经使用Symfony1.4超过2.5年了。现在有一个新的项目,客户希望使用Symfony2进行此项目

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

  • 我在该项目中有3个应用程序。我是否为这3个应用程序创建捆绑包?还是在src/目录中创建3个apps文件夹,并为各个应用程序的各个模块创建捆绑包

  • 如果我们为上面Q1的每个应用程序创建捆绑包,我无法找到在同一捆绑包中组织模块级实体的方法。例如,对于模块前端,我有用户、事件、日历等模块,如何在前端包中组织模块

  • 所有应用程序的通用代码都存储在Symfony1.4的根库/文件夹中,用于在所有应用程序中访问。我无法理解在哪里有这个通用代码?我的文件夹里有吗?或者供应商文件夹只是为了第三方的目的,比如条令

  • 请一些Symfony2专家澄清这些疑问

  • 您创建了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或其他。有些人更喜欢这样的方式,即您创建诸如供应商库之类的通用代码,然后创建捆绑包,它是您的库和symfony应用程序之间的桥梁

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

  • 您创建了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或其他。有些人更喜欢这样的方式,即您创建诸如供应商库之类的通用代码,然后创建捆绑包,它是您的库和symfony应用程序之间的桥梁

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


    对于我问的前两个问题,如果我们在后端和前端创建两个文件夹会怎么样。然后使用createbundle命令在frontend文件夹下创建用户bundle?也不是应用程序文件夹创建应用程序文件夹,而是为单个应用程序创建2个文件夹前端和后端?这不会为我分离应用程序方面的捆绑包吗?我不确定我是否正确理解了你的意思。您希望创建两个应用程序(在s1.4中的含义)。“前端”和“后端”。因此,您可以创建如下内容:在src/dir中,使用您的公司名称创建dir(这只是惯例),然后在那里创建两个捆绑包:AdminBundle和AppBundle(而不是backend/frontend-正确地说,前端是您的用户界面/视图,后端是业务逻辑和控制器)。然后在AppBundle中创建UserController(或事件或所需内容)。您需要更改方法。在Symfony2中,没有模块或/和应用程序这样的东西。逻辑上独立的东西会创建单独的包。在包中,您可以创建单独的名称空间来提取一些“模块”。如果你有更多的问题或更多的问题,请提问。顺致敬意,对于我问的前两个问题,如果我们在后端和前端创建两个文件夹会怎么样。然后使用createbundle命令在frontend文件夹下创建用户bundle?也不是应用程序文件夹创建应用程序文件夹,而是为单个应用程序创建2个文件夹前端和后端?这不会为我分离应用程序方面的捆绑包吗?我不确定我是否正确理解了你的意思。您希望创建两个应用程序(在s1.4中的含义)。“前端”和“后端”。因此,您可以创建如下内容:在src/dir中,使用您的公司名称创建dir(这只是惯例),然后在那里创建两个捆绑包:AdminBundle和AppBundle(而不是backend/frontend-正确地说,前端是您的用户界面/视图,后端是业务逻辑和控制器)。然后在AppBundle中创建UserController(或事件或所需内容)。您需要更改方法。在Symfony2中,没有模块或/和应用程序这样的东西。逻辑上独立的东西会创建单独的包。在包中,您可以创建单独的名称空间来提取一些“模块”。如果你有更多的问题或更多的问题,请提问。顺致敬意,