если я правильно понял вашу идею, вы бы попробовали использовать __call
магический метод ??затем используйте $this->_redirect();
для действия по умолчанию, например
дополнительная информация здесь http://php.net/manual/en/language.oop5.overloading.php
ОБНОВЛЕНИЕ
если вы открыли Zend / Controller /Action.php в строке 480
public function __call($methodName, $args)
{
require_once 'Zend/Controller/Action/Exception.php';
if ('Action' == substr($methodName, -6)) {
$action = substr($methodName, 0, strlen($methodName) - 6);
throw new Zend_Controller_Action_Exception(sprintf('Action "%s" does not exist and was not trapped in __call()', $action), 404);
}
throw new Zend_Controller_Action_Exception(sprintf('Method "%s" does not exist and was not trapped in __call()', $methodName), 500);
}
что я хотел сделать, это расширить этот класс и переопределить функцию __call
точно так, чтобы она была
classs My_Controller_Action extends Zend_Controller_Action{
public function __call($methodName, $args)
{
///// do your magic here ......redirection or logging the request or what ever
}
}
, и убедиться, что ваш контроллер расширяет вашнедавно созданный класс
class FooController extends My_Controller_Action
{
public function indexAction()
{
// action body
}
}
, так что если некоторые, как вы называли несуществующее действие __call
, запустят эту идею, речь идет о несуществующем действии, только если оно не будет работать, если контроллер не существует