в функции, которую я хочу достичь текущего контроллера:
$front = Zend_Controller_Front::getInstance();
это дает только обработчик, но не текущий контроллер.
Я изменил код с функции на внутренний контроллер. и спросил их происхождение как обработчика, который я получил от getInstance, и этого
var_dump(get_class($front), get_class($this));
Я получил:
string 'Zend_Controller_Front' (length=21) string 'IndexController' (length=15)
Как я могу достичь реального начального фронтального контроллера?
Я не могу пройти в качестве параметра, потому что эта функция используется триллион раз.
Zend_Controller_Front::getInstance()->getRequest()->getControllerName();
Возможно с:
$front = Zend_Controller_Front::getInstance() $request = $front->getRequest(); $module = ucfirst($request->getModuleName()); $controller = ucfirst($request->getControllerName()); $instance = new $module . '_' . $controller . 'Controller';
В помощнике действий:
$instance = $this->getActionController();
Но это, вероятно, означает, что с вашей архитектурой что-то не так.
Вы должны переместить общий код, необходимый для помощника действий, службы или модели.