我有这一法典:
$defaultAdmin = array ( module => admin , controller => index , action => index );
$routeAdmin = new Zend_Controller_Router_Route ( admin/:controller/:action/* , $defaultAdmin );
$router->addRoute ( admin , $routeAdmin );
然而,如果我进入这一档次:行政/行政,将控制员装上/申请/控制员/主计长。 php,而不是在申请/申请/模块/行政/控制人员/内部监督员中。
我的 full锁是:
abstract class My_Application_Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
/**
* Inicializa las características generales de la aplicación
*
* @param $application Zend_Application|Zend_Application_Bootstrap_Bootstrapper
* @return void
*/
public function __construct($application) {
parent::__construct ( $application );
$autoloader = $application->getAutoloader ();
$autoloader->registerNamespace ( Busca );
$this->_initConfig ();
$this->_initDb ();
$this->_initView ();
$this->_setCache ();
$this->_setRouter ();
$this->_setHelpers ();
$this->_init ();
}
/**
* Método que setea el cache del sistema
*
* @return My_Application_Bootstrap
*/
protected function _setCache() {
$config = Zend_Registry::get ( config );
$metadataBack = $config->metadata_cache->frontend->toArray ();
$metadataFront = $config->metadata_cache->backend->toArray ();
$memcachedOpts = $config->db_cache->toArray ();
$memcache = new My_Cache_Backend_Memcached ( $memcachedOpts );
$metadataCache = Zend_Cache::factory ( Core , File , $metadataBack, $metadataFront );
Zend_Registry::set ( Cache , $memcache );
Zend_Registry::set ( MetadaCache , $metadataCache );
My_Model_Table_Abstract::setDefaultMetadataCache ( MetadaCache );
return $this;
}
/**
* Inicializa la configuración de la aplicación
*
* @return My_Application_Bootstrap
*/
protected function _initConfig() {
Zend_Registry::set ( config , new Zend_Config ( $this->getOptions () ) );
return $this;
}
/**
* Inicializa la(s) base(s) de datos
*
* @return My_Application_Bootstrap
*/
protected function _initDb() {
$this->bootstrap ( multidb );
$resource = $this->getPluginResource ( multidb );
$databases = Zend_Registry::get ( config )->resources->multidb;
foreach ( $databases as $name => $adapter ) {
$db_adapter = $resource->getDb ( $name );
Zend_Registry::set ( $name, $db_adapter );
}
return $this;
}
/**
* Reemplaza la vista Zend_View por My_View
*
* @return My_Application_Bootstrap
*/
protected function _initView() {
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper ( viewRenderer );
$view = new My_View ();
$viewRenderer->setView ( $view );
return $this;
}
/**
* Método que setea el router general del sitio
* Todas las peticiones irán al controlador default, con excepción de las de
* administración.
*
* @return My_Application_Bootstrap
*/
protected function _setRouter() {
$front = Zend_Controller_Front::getInstance ();
$router = $front->getRouter ();
/*
* Router para entidades
*/
$defaultSection = array ( module => default , controller => index , action => section , sectionAction => null, section => null, id => null, title => null );
$requiredSection = array ( id => d+ );
$routeSection = new Zend_Controller_Router_Route ( :section/:sectionAction/:id/:title/* , $defaultSection, $requiredSection );
$router->addRoute ( section , $routeSection );
/*
* Router para entidades sin ID
*/
$defaultSection = array ( module => default , controller => index , action => section , sectionAction => null, section => null );
$routeSection = new Zend_Controller_Router_Route ( :section/:sectionAction/* , $defaultSection, $requiredSection );
$router->addRoute ( section , $routeSection );
/*
* Router para listados
*/
$defaultList = array ( module => default , controller => index , action => list , section => null );
$routeList = new Zend_Controller_Router_Route ( :section/listar/* , $defaultList );
$router->addRoute ( listados , $routeList );
/*
* Router para administración
*/
$defaultAdmin = array ( module => admin , controller => index , action => index );
$routeAdmin = new Zend_Controller_Router_Route ( admin/:controller/:action/* , $defaultAdmin );
$router->addRoute ( admin , $routeAdmin );
return $this;
}
/**
* Configuración de los helpers del sistema
*
* @return My_Application_Bootstrap
*/
protected function _setHelpers() {
$prefix = My_Controller_Action_Helpers ;
Zend_Controller_Action_HelperBroker::addPrefix ( $prefix );
Zend_Controller_Action_HelperBroker::addPath ( APPLICATION_PATH . /controllers/helpers , My_Controller_Action_Helper );
return $this;
}
/**
* Para usar en los hijos en vez del constructor
*/
protected function _init() {
}
}