/** * Get controller class name * * Try request first; if not found, try pulling from request parameter; * if still not found, fallback to default * * @param \Zend\Controller\Request\AbstractRequest $request * @return string|false Returns class name on success */ public function getControllerClass(Request\AbstractRequest $request) { $controllerName = $request->getControllerName(); if (empty($controllerName)) { if (!$this->getParam('useDefaultControllerAlways')) { return false; } $controllerName = $this->getDefaultControllerName(); $request->setControllerName($controllerName); } $className = $this->formatControllerName($controllerName); $controllerDirs = $this->getControllerDirectory(); $module = $request->getModuleName(); if ($this->isValidModule($module)) { $this->_curModule = $module; $this->_curDirectory = $controllerDirs[$module]; } elseif ($this->isValidModule($this->_defaultModule)) { $request->setModuleName($this->_defaultModule); $this->_curModule = $this->_defaultModule; $this->_curDirectory = $controllerDirs[$this->_defaultModule]; } else { throw new Controller\Exception('No default module defined for this application'); } return $className; }
/** * Push actions into application actions stack * @param int $id * @param Templater_Api_Interface_Widget $widget * @param string $placeholder * @param array $params */ protected function _pushStack($id, \Zend\Controller\Request\AbstractRequest $request, $placeholder, $params = array()) { $params[$this->_widgetIdName] = md5($id); $camelFilter = new \Zend\Filter\Word\CamelCaseToDash('-'); $blockRequest = new \Zend\Controller\Request\Simple(strtolower($camelFilter->filter($request->getActionName())), strtolower($camelFilter->filter($request->getControllerName())), strtolower($camelFilter->filter($request->getModuleName())), array_merge($params, array($this->_marker => $placeholder))); $this->_stack->pushStack($blockRequest); }
/** * Forward request with next action * * @param array $next * @return void */ public function forward(Request\AbstractRequest $next) { $request = $this->getRequest(); if ($this->getClearRequestParams()) { $request->clearParams(); } $request->setModuleName($next->getModuleName())->setControllerName($next->getControllerName())->setActionName($next->getActionName())->setParams($next->getParams())->setDispatched(false); }
/** * Defined by Zend_Controller_Plugin_Abstract * * @param Zend_Controller_Request_Abstract * @return void */ public function postDispatch(AbstractRequest $request) { $this->mark($request->getControllerName() . 'Controller::' . $request->getActionName() . 'Action'); }