Zend Framework - 如何在控制器的某些操作之间共享公共代码?

Mou*_*hna 4 zend-framework zend-controller

为了让我的控制器尽可能干,我需要在控制器的两个操作之间共享一些公共代码(很大一部分代码)而不是所有这些代码,我需要在我的操作中使用这个共享代码中的访问变量.

例如:

class FirstController extends Zend_Controller_Action {

   public function firstAction() {
     //common code here: contains an array $columns 
   } 
   public function secondAction() { 
       //common code here: contains an array $columns also 

   } 

   //other actions
}
Run Code Online (Sandbox Code Playgroud)

那么我怎么能重构这个来将公共代码放在一个地方并且能够访问$columns和in firstAction()secondAction().

谢谢.

Liy*_*ali 5

我不建议您使用基本控制器.对于这么小的任务来说,这太过分了.由于您希望在一个控制器中共享公共代码,因此请使用动作帮助程序和类属性$columns,您可以将其作为参数发送到动作帮助程序.

在这里阅读更多关于行动助手的信息

Action Helpers允许开发人员将运行时和/或按需功能注入任何扩展Zend_Controller_Action的Action Controller.Action Helpers旨在最大限度地减少扩展抽象Action Controller的必要性,以便注入通用的Action Controller功能.