我是Zend框架的新手,并使用框架2.0。我需要在PHP Zend框架中对路由进行一些澄清。 1)Bootstrap.php在路由中的作用是什么。 2)我们如何使用index.php进行路由。 3)需要编写哪些代码才能实现自定义路由。
此外,我已经编写了某些代码,但没有获得所需的输出。
bootstrap.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);
}
}
的index.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。
答案 0 :(得分:2)
我建议您执行以下操作:
你不应该碰任何东西。在创建项目
包括:
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模型示例模块和视图。
这些是一些有用的链接: