我应该编辑appkernel以使用Core控制器

时间:2014-06-04 14:38:39

标签: php symfony architecture symfony-2.1 symfony-2.3

我刚刚开始一个新项目,我选择symfony2作为它的MVC框架。我想首先通过创建一个模块化架构的BASE来启动这个项目,我的意思是一个空的应用程序,包含主要和常见的服务,如(导航树管理,使用数据库激活/停用模块,记录器......)或任何其他全局在详细受孕后可能会出现的功能性。我的模块稍后将成捆。

我想的是一个核心控制器,它将接收所有请求,执行所需的所有处理,初始化/更改模块将使用的服务,具体取决于配置(文件或数据库)和缓存(会话/全局)然后调用被叫控制器并返回响应。要做到这一点,我必须更改内核,以便始终向此控制器发送,并提供操作和用户调用它的控制器。

我只使用标准版在symfony做了一些项目,这是第一次尝试进行内部定制,所以我没有太多的经验。如果有人认为我的想法很糟糕并有其他建议,那就让他们生病了极了!

编辑:我可以指定此BASE只是测试以找到完美的模块化架构,因此任何与symfony中的模块化相关的其他想法都将是一个很大的帮助!感谢

1 个答案:

答案 0 :(得分:0)

内核本身与控制器无关。这全部由ControllerResolver处理。如果您总是希望使用同一个控制器处理每个incomming请求,您可以创建自己的ControllerResolver以始终返回该控制器的实例。有关控制器解析的详细信息,请参阅http://symfony.com/doc/current/components/http_kernel/introduction.html#resolve-the-controller

但是,我建议不要这样做。控制器应该是User land和Logic land之间的非常锡层。所有繁重的事情都应该在逻辑层,服务中完成。如果您使用服务,您可以更好地将它们注册为kernel.controller事件的侦听器,而不是从控制器中调用它们。另请参阅http://symfony.com/doc/current/cookbook/event_dispatcher/before_after_filters.html