2016-09-19 102 views
1

首先,我是Symfony2中的新手,我正在开发一个应用程序。
这是一个投资组合,这里是我的等级:Symfony 2 - 创建管理页面

我想创建我自己的后台。

/SRC
---- /安托
--------/PortfolioBundle
------------ /控制器
----- ----------- ProjectsController.php
------------/Resources
----------------/config
-------------------- routing.yml
-------------------- routing_admin.yml ?
--------/UserBundle
------------/Controller
---------------- DefaultController.php
------------/Resources
----------------/config
------------- ------- routing.yml
-------------------- routing_admin.yml?

我应该:
- 将在每个控制器管理操作(例如:ProjectsController:的addAction())
- 创建每个包的AdminController
- 创建一个名为捆绑AdminBundle(我不喜欢)

如果我想在/ admin前加上所有管理路由,那么我应该在每个bundle中创建一个admin_routing.yml并将其包含在每个具有前缀/ admin的bundle的每个routing.yml中?

谢谢你的时间。

回答

0

我应该:

  • 在每个控制器认沽管理操作(例如:ProjectsController:的addAction())

号这将使麻烦你的方法,名字,这是令人困惑

  • 创建在每个束的AdminController

是或多于一个AdminController。例如:

  • DefaultAdminController
  • ProjectsAdminController

  • 创建一个名为捆绑AdminBundle(我不喜欢它)

如果您直接创建管理页面,并重复使用实体以及其他几个类,那么您的AdminBundle将不会像它应该那样独立。

除此之外,你可以看看Sonata admin bundle。在这里,您可以了解他们如何构建完全分离的AdminBundle

+0

您不给任何理由说创建AdminBundle为“否”。我并没有真正使用Symfony,我只是想知道使用AdminBundle有什么问题。对我而言,将整个管理部分封装在自己的包含自己的控制器,视图等的捆绑包中似乎更有意义。业务逻辑可以存储在这两个包之外。 – BadHorsie

+0

你说得对。主要原因是,如果您直接创建管理页面并重复使用您的实体以及其他几个类,那么您的AdminBundle将不会像它应该那样独立。这就是为什么我也指出Sonata管理软件包。在这里,您可以了解他们如何构建完全分离的AdminBundle。 –

+0

好点。我想在这种情况下,管理软件包是专门为应用程序设计的,不能转移到另一个应用程序(假设OP不想创建通用管理插件,就像Sonata一样)。 – BadHorsie