Zend Unset Action помощник от действия контроллера - PullRequest
0 голосов
/ 25 мая 2011

Zend Framework. Я инициализирую в своем классе начальной загрузки My_Action_Helper_Custom (расширение Zend_Controller_Action_Helper_Abstract), чтобы сделать его доступным для всех моих контроллеров.

Могу ли я просто отключить его для конкретного действия, гдеВам это не нужно?

спасибо

Лука

1 Ответ

1 голос
/ 25 мая 2011

Вы имеете в виду отключение хуков 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
}
...