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

时间:2014-11-01 21:49:59

标签: php zend-framework

Zend documentation provides examples如何创建路线。但它没有说明代码中的这个示例代码适用于何处。我不确定它本身是在视图,控制器还是路由文件中。 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'))
);

2 个答案:

答案 0 :(得分:1)

你可以将它粘贴在你的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';
}

然后将所有路由放入新文件中。让事情变得更加整洁。

答案 1 :(得分:0)

我将所有路线都放在

protected function _initRoutes(){

}
<{1>} Bootstrap.php。尝试

protected function _initRoutes(){
     $router = $this->getFront()->getRouter();

     $router->addRoute(
     'user',
     new Zend_Controller_Router_Route('user/:username',
                                 array('controller' => 'user',
                                       'action' => 'info'))
     );
}

您可以在此question找到有用的信息。