Też właśnie patrzyłem, że nie ma tej metody, dlatego dziwi mnie, że to nie działa bo to jest (jak sprawdziłem) żywcem z dokumentacji zenda plugin..
A który plugin bym nie znalazł czy pisał sam wychodzi dokładnie ten sam błąd.. przy getControllerName() to samo bo też nie ma tej metody tam..
Próbowałem też tak..
<?php
class My_Controller_PreDispatchPlugin extends Zend_Controller_Plugin_Abstract
{
function preDispatch(Zend_Controller_Request_Abstract $request){
/*
* pobierz instancje frontControllera i dispatchera
*/
$frontController = Zend_Controller_Front::getInstance();
$dispatcher = $frontController->getDispatcher();
/*
* sprawdz czy zadanie $request dispatchera jest wykonalne
*/
if ($dispatcher->isDispatchable($request)){
//tu było dodatkowe sprawdzanie auth etc. ale to i tak nie o to teraz mi chodzi
}else{
/*
* obiekt zadania nie istnieje
* przekieruj uzytkownika na strone 404
*/
$request->setControllerName('Exception');
$request->setActionName('web404');
}
}
}
?>
Ale to zupełnie nie działa.. wywala mi wyjątek o braku akcji przykładowo cos przy url www.cos.pl/kontroler/cos
Edit: Problem rozwiązałem w inny sposób co prawda niż chciałem ale działa. Temat można zamknąć.