Voici une fonction définie dans ma classe Bootstrap
. Je dois manquer quelque chose de fondamental dans la façon dont Zend fait le routage et l'envoi. Ce que j'essaie d'accomplir est simple: Pour toute demande /foo/bar/*
qui n'est pas dispatchable pour une raison quelconque, essayez /index/foo/bar/
. Le problème que j'ai est quand le FooController
existe je reçois Action "foo" does not exist
. Fondamentalement, le isDispatchable
est toujours faux.Routage de la requête zend via un contrôleur par défaut lorsque le contrôleur n'est pas trouvé
public function run() {
$front = Zend_Controller_Front::getInstance();
$request = $front->getRequest();
$dispatcher = $front->getDispatcher();
//$controller = $dispatcher->getControllerClass($request);
if (!$dispatcher->isDispatchable($request)) {
$route = new Zend_Controller_Router_Route(
':action/*',
array('controller' => 'index')
);
$router = $front->getRouter();
$router->addRoute('FallBack', $route);
}
$front->dispatch();
}
Je ne suis pas sûr que la méthode '__call' vous voulez dire? Quelle classe? Plus précisément, la classe de contrôleur dans ce cas n'existe pas. La raison pour laquelle je veux introduire une nouvelle route est que je peux commencer la boucle et que le routeur attrape correctement tout ce qui suit ': action /'. Je réalise cependant que cela ne peut pas être fait dans bootstrap car le routeur et le répartiteur ne sont pas encore prêts. Il pense que je devrais créer un plugin ou quelque chose. –
@brett j'avais mis à jour ma réponse j'espère que ma réponse vous aidera – tawfekov