2

我是 Zend 框架的新手并使用框架 2.0。我需要对 PHP Zend 框架中的路由进行某些澄清。1)Bootstrap.php在路由中的作用是什么。2) 我们如何使用 index.php 进行路由。3)实现自定义路由需要写什么代码。

另外,我编写了某些代码,但没有得到想要的输出。

引导程序.php:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{   
    protected function _initRouter()
    {
    $frontController = Zend_Controller_Front::getInstance();
        $router = $frontController->getRouter();
        $route = new Zend_Controller_Router_Route(':userid',
                                            array('controller' => 'user',              'action'=>     'index', 'userid'=>null));
        $router->addRoute('default', $route);   
    }   
}

索引.php

 error_reporting(E_ALL);
 ini_set('display_errors', 1);

 ini_set('display_errors', true);

 //Define Base Url
 define("BASEURL","http://".$_SERVER['SERVER_NAME']."/sampleapp/public/");

 // directory setup and class loading
 set_include_path('.' . PATH_SEPARATOR . 'library/'
     . PATH_SEPARATOR . 'application/models'
     . PATH_SEPARATOR . 'application/config'
     . PATH_SEPARATOR . get_include_path()
 );

 include ('Zend/Loader/Autoloader.php');
 $loader = Zend_Loader_Autoloader::getInstance();

 // setup controller
 $frontController = Zend_Controller_Front::getInstance();
 $frontController->throwExceptions(true);
 $frontController->setControllerDirectory('application/controllers');

 // run!
 $frontController->dispatch();

我正在尝试获取路线值,例如我的网址是:

localhost:8080/sampleapp/user/index/1.

我应该如何从路线中获得 1。这里 1 是用户 ID。

4

1 回答 1

2

我建议执行以下操作:

  • 在 index.php 上你不应该碰任何东西。创建项目时保留 Zend 默认值

  • projectHomeDirectory /application/Bootstrap.php 上包括:

    protected function _initRoutes()
    {
            $router = Zend_Controller_Front::getInstance()->getRouter();
            include APPLICATION_PATH . "/configs/routes.php";
    }
    
  • 在projectHomeDirectory /application/configs/下创建一个 routes.php 文件,并在其中添加您想要的所有路由,例如:

    $router->addRoute('sample-module/user', new Zend_Controller_Router_Route(
            'user/:action/:id/',
            array('module' => 'sample', 'controller' => 'user', 'id'=>'\w+')
    ));
    

当然,您随后需要创建 UserController、User 模型、示例模块和视图。

这些是一些有用的链接:

Zend 路由,抛出资源未找到

http://framework.zend.com/manual/1.12/en/zend.controller.router.html#zend.controller.router.routes.standard

于 2013-01-17T18:23:43.033 回答