有人可能会提供一些技巧和/或示例控制器插件和动作助手是如何不同的?是否存在可以用一个而不是另一个完成特定任务的情况?对我来说,他们看起来或多或少都是一样的,我经常无法决定何时使用什么......有什么大不同之处吗?
控制器插件可以在路由进程中的任何一点挂钩到任何控制器(preDispatch postDispatch,routeStartup,routeShutdown),这使得它们能够提供像ACL强制执行这样的幕后功能.
Action Helpers用于控制器可能需要访问的可重用但可选的段(重定向器,flashMessenger).
因此,如果您要创建一个可重用的代码片段,它总是需要自己执行,那么请使用控制器插件,否则您可能需要一个动作帮助器.
你可以这样想:
动作助手用于向控制器添加方法.
控制器插件用于向控制器添加路由/调度逻辑.
那么问问自己,我是否有一种方法可以通过控制器中的所有操作调用?或者我是否需要在路由/调度过程中添加逻辑.
您也可以查看内置动作助手.
用于说明插件和动作助手之间区别的图片: ZF Sequence Flow