【问题标题】:best and right way toorganize bundles in symfony2在 symfony2 中组织包的最佳和正确方法
【发布时间】:2012-01-25 21:03:47
【问题描述】:

我有点困惑如何在 symfony2 中组织包。在我的应用中,我需要 3 页:

1- 插入 2- 列表 3- 更新

哪一种是组织我的代码的正确和最佳方式?

src/cp/AddPageBundle src/cp/EditPageBundle src/cp/UpdatePageBundle

在一个包中写入 3 个不同的控制器,每个控制器在不同的文件中?

在一个包中,在一个控制器文件中编写 3 个不同的操作?

我真的很困惑。

提前致谢!

【问题讨论】:

    标签: symfony


    【解决方案1】:

    在一个捆绑包中,一个控制器中有 3 个不同的操作。无需跨包或控制器拆分此功能。

    例如,您可以使用 UserController (insertAction、ListAction、UpdateAction) 编辑/列出/更新用户来处理用户,例如添加另一个控制器 (CommentsController) 用于编辑/列出/更新 cmets。同样的情况可以用于您的页面示例(添加/编辑/更新)

    可选的方法是在控制器文件夹中创建文件夹,以便我们拥有更有条理的代码。例如为控制器创建 Admin 文件夹:Admin/ConsoleController、Admin/CategoryController、Admin/PluginController 来处理管理功能。

    【讨论】:

    • 嘿,非常感谢!作为补充,你是使用 app/config/routing.yml 中的路由还是每个路由都应该放在每个包中?
    • 我会在每个捆绑包中使用单独的路由。这样一来,bundle 可以独立工作(隔离),并且可以传递给其他应用程序而不会丢失路由。
    【解决方案2】:

    我完全同意 TroodoN-Mike 的观点。此外,您应该使用您的 Page 实体和字段(发布日期、标题、内容等)创建 PageBundle,然后执行

    app/console generate doctrine:crud PageBundle:Page
    

    Symfony 将生成一个基本的 CRUD,但使用您的插入/列表/更新

    【讨论】:

      【解决方案3】:

      刚刚试过 - 命令是:

      app/console doctrine:generate:crud --entity PageBundle:Page

      这会在命令行上启动一个向导,它会提示您输入它需要的任何其他参数。

      不幸的是,仅当您的主键字段称为 id 并且具有 getID() 方法时才有效。

      【讨论】:

        猜你喜欢
        • 2018-04-02
        • 1970-01-01
        • 2015-02-01
        • 2012-02-20
        • 1970-01-01
        • 1970-01-01
        • 2015-10-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多