【问题标题】:Modular application in Symfony 2Symfony 2 中的模块化应用
【发布时间】:2013-06-19 11:11:27
【问题描述】:

我正在寻找 symfony 2 中模块化应用程序的最佳实践。到目前为止,我的应用程序被分为 2 个包(前包和后包)。但是现在,我想将我的应用程序分成更多的模块。例如,一个用于用户管理的捆绑包,下一个用于产品(包括类别)的捆绑包,下一个用于页面管理的捆绑包等等......

问题出在每个捆绑包的实体中。以某种方式存在,如何将实体分配到其捆绑包中?我的意思是用户实体进入用户包,产品和类别实体进入产品包等等。

编辑:

我使用理论控制台生成实体。但是我没有找到任何参数来从我的数据库中生成几个实体。这种方式对吗?还是我必须手动编写实体?

我需要这样的想法来重复使用捆绑包。

感谢您的任何提示;)

【问题讨论】:

    标签: php symfony bundle


    【解决方案1】:

    我认为你把事情复杂化了。像管理实体这样简单的事情不应该仅仅为此而拥有完整的捆绑包。一个包可以容纳 40 多个实体是完全可以的。

    您可以使用另一个捆绑包,如下例所示:

    将用于外观精美的表单、自动完成字段、图像上传器、图像调整器等的表单包。比在您的主应用程序表单中,您可以执行以下操作:

    $builder->add("Users", "my_fancy_autocomplete_collection", [
       "type"=>new UserType(),
       "autocomplete_route_name"=>"suggest_users"  // controller route          
    ]) ;
    

    为了显示,它可能类似于:http://welldonethings.com/tags/manager(我找到的第一个)

    这种花哨的类型必须有一些 DataTransformer,它将显示数据转换为从数据库获取的真实用户。一次学习所有这些东西有点棘手,但是一旦你这样做了,你就可以在其他应用程序中使用相同的包。

    【讨论】:

      【解决方案2】:

      当我开始一个 symfony 2 项目时,这是我关于 bundles 的逻辑:

      • 为我的应用创建一个捆绑包(当然使用 CLI)
      • 创建其他捆绑包如果我可以在其他项目中重复使用它们

      因此,正如@Zeljko 所说,请三思而后行定义捆绑包的项目范围。

      之后就很简单了,使用正确的命名空间(例如:Company\Nomdubundle\Entity)在 bundle 中创建您的实体。

      【讨论】:

      • 对不起,我的问题说明有误。我编辑了我的问题。我知道,我想分离哪些捆绑包,但问题出在实体生成器中。
      【解决方案3】:

      我在这里找到了灵魂(有一个参数--filter) Generating a single Entity from existing database using symfony2 and doctrine

      感谢您的提示。

      【讨论】:

        猜你喜欢
        • 2012-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-16
        • 1970-01-01
        相关资源
        最近更新 更多