Default / modül / denetleyicisi / eylem / değer yönlendirme yapısını korurken, rotayı "catch all" bir makyaj url oluşturmak için yine de var mı?
Teşekkürler!
Bir ön kontrolör eklentisi PreDispatch () kanca kullanabilirsiniz. Şöyle:
Lütfen bootstrap yılında
<?php
...
$frontController = Zend_Controller_Front::getInstance();
// Set our Front Controller Plugin
$frontController->registerPlugin(new Mystuff_Frontplugin());
?>
Sonra mystuff / Frontplugin.php içeride
<?php
class Mystuff_Frontplugin extends Zend_Controller_Plugin_Abstract
{
....
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
....
$controllerFile = $this->_GetRequestedControllerFile();
if (!is_file($controllerFile)) {
// Controller does not exist
// re-route to another location
$request->setModuleName('customHandler');
$request->setControllerName('index');
$request->setActionName('index');
}
}
....
}
Ayrıca preDispatch () uygulama geniş kimlik doğrulama işlemek için kullanışlı bir yerdir.
Bu daha iyi sizin bootstrap size kurulum örneğin, özel bir yol, eğer:
protected function _initRoutes() {
$this->bootstrap('frontController');
$front = $this->getResource('frontController');
$router = $front->getRouter();
$router->addRoute(
'neat_url',
new Zend_Controller_Router_Route(
'profile/:username',
array(
'controller' => 'profiles',
'action' => 'view_profile'
)
)
);
}
Bu şekilde hala varsayılan yol var ve $ this-> _getParam ('username') kullanarak parametreyi elde controller sonra altında / profil / jhon.doe altında her şeyi yönlendirir özel bir yol olabilir;