来自控制器动作的Zend Unset Action助手

时间:2011-05-24 22:58:00

标签: php zend-framework controller helpers

Zend框架说话。我正在我的引导类My_Action_Helper_Custom(扩展Zend_Controller_Action_Helper_Abstract)中初始化,以使其可供所有控制器使用。

我可以针对我不需要的特定操作禁用它吗?

感谢

卢卡

1 个答案:

答案 0 :(得分:1)

您是指为特定控制器操作禁用preDispatch()postDispatch()挂钩吗?

如果是这样,我会向帮助者添加某种形式的黑名单属性,例如

/**
 * @var array
 */
private $blacklistActions = array();

public function addBlacklistAction($action)
{
    // store actions in string form
    // eg, module.controller.action
    $this->blacklistActions[] = $action;
}

public function preDispatch()
{
    $request = $this->getRequest();
    $action = sprintf('%s.%s.%s',
            $request->getModuleName(),
            $request->getControllerName(),
            $request->getActionName());
    if (in_array($action, $this->blacklistActions)) {
        return;
    }

    // the rest
}