我需要所有控制器中的一些共同行为。拥有一个 BaseController 并让所有控制器扩展该类是个好主意吗?如果是这样,避免Fatal error: Class 'BaseController' not found
错误的正确方法是什么。
问问题
1090 次
4 回答
7
这当然是一种常见的方法。
但是ZF 项目负责人 Matthew Weier O'Phinney 的一篇文章解释了行动助手如何以更大的灵活性提供相同的好处。
特别是,一个普通的基本控制器经常成为多个但不是所有控制器中使用的功能的垃圾场,因此它变得过大了。Action-helpers 是一种延迟加载的替代方案,可以在您需要的时间和地点准确地调用功能。
此外,action-helper 调度钩子 -init()
和preDispatch()
-允许您在每个控制器的基础postDispatch()
上自动执行类似插件的功能。
我会去行动助手。但与大多数事情一样,YMMV。;-)
于 2011-02-19T14:39:45.317 回答
4
不,不要那样做。使用动作助手为您的控制器添加功能。如果您使用基本控制器,它会很快变得复杂和不稳定。动作助手允许更大的灵活性。
于 2011-02-19T09:35:41.040 回答
3
是的,这是一个好主意,也是一种非常常见的模式。查看参考 ZF 手册的Subclassing the Action Controller部分。
于 2011-02-19T06:21:53.273 回答
2
于 2011-02-19T08:34:11.890 回答