Zend:你在哪里实例化路由器对象


Zend: Where do you instantiate router object?

Zend文档提供了如何创建路由的示例。但它没有说明此示例代码在代码中的哪个位置适用。我不确定这本身是否在视图、控制器或路由文件中。Zend文档似乎在解释一切的去向方面非常糟糕;它很少标记哪些代码进入哪个文件。我应该在 Zend 中实例化以下路由对象在哪个文件中?

// Create a router
$router = $ctrl->getRouter(); // returns a rewrite router by default
$router->addRoute(
    'user',
    new Zend_Controller_Router_Route('user/:username',
                                     array('controller' => 'user',
                                           'action' => 'info'))
);

你可以把它放在你的Bootstrap.php中,就像这样:

protected function _initRoutes() {
    $frontController = Zend_Controller_Front::getInstance();
    $router = $frontController->getRouter();
    $router->addRoute(
    'user',
    new Zend_Controller_Router_Route('user/:username',
                                 array('controller' => 'user',
                                       'action' => 'info'))
        );
    }
}

甚至更好,

protected function _initRoutes() {
    $frontController = Zend_Controller_Front::getInstance();
    $router = $frontController->getRouter();
    require_once APPLICATION_PATH . '/configs/routes.php';
}

只需将所有路由放入新文件中即可。让事情更整洁一些。

我把所有的路线都放进去了

protected function _initRoutes(){
}

Bootstrap.php.尝试

protected function _initRoutes(){
     $router = $this->getFront()->getRouter();
     $router->addRoute(
     'user',
     new Zend_Controller_Router_Route('user/:username',
                                 array('controller' => 'user',
                                       'action' => 'info'))
     );
}

您可以在此问题中找到有用的信息。