#php #zend-framework #controller #helpers
#php #zend-framework #контроллер #помощник
Вопрос:
Обсуждение Zend framework.Я инициализирую в своем классе начальной загрузки My_Action_Helper_Custom (расширяя Zend_Controller_Action_Helper_Abstract), чтобы сделать его доступным для всех моих контроллеров.
Могу ли я просто отключить его для определенного действия, когда оно мне не нужно?
Спасибо
Luca
Ответ №1:
Вы имеете в виду отключение перехватов preDispatch()
или postDispatch()
для определенного действия контроллера?
Если это так, я бы добавил некоторую форму свойства blacklist к помощнику, например
/**
* @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
}
Комментарии:
1. должен ли я вызывать addblacklistAction из контроллера??
2. @luca Я бы сделал это из начальной загрузки, прежде чем добавлять его в вспомогательный брокер