Zend Framework路由器用法实例详解


Posted in PHP onDecember 11, 2016

本文实例讲述了Zend Framework路由器用法。分享给大家供大家参考,具体如下:

路由是一个过程,在这个过程中它去除URI的端点(跟着基本URL的URI部分),并将其分解成参数来决定哪个模块、哪个控制器和哪个动作应该接受请求。

模块、控制器、动作、及其参数被打包到Zend_Controller_Request_Http对象。

使用路由器

为了正确使用路由器,必须对其进行初始化操作。

创建路由器可以通过前端控制器实例的getRouter()方法来实现。该方法不需要任何参数,执行该方法可以返回一个Zend_Controller_Router_Rewrite对象。

创建路由器之后,需要添加一些用户定义的路由,该操作可以通过Zend_Controller_Router_Rewrite对象的addRoute()方法来实现。

代码:

<?php
/**
演示创建路由器的过程
*/
require_once 'Zend/Controller/Front.php';    //引用Zend_Controller_Front.php
$ctrl = Zend_Controller_Front::getInstance();  //创建一个前端控制器
$router = $ctrl->getRouter();          //返回一个默认路由,前端控制器功能很强大啊
$router->addRoute('user',new Zend_Controller_Router_Route('user/:username',array('controller'=>'user','action'=>'info')));

4种基本路由

1.缺省路由

定义:缺省路由是存储在RewriteRouter中名为‘default'的简单Zend_Controller_Router_Route_Module对象。

2.标准框架路由

定义:Zend_Controller_Router_Route是标准的框架路由。

例子:

<?php
//定义标准框架路由
$route = new Zend_Controller_Router_Route('author/:username',
array(
  'controller'=>'profile',
  'action'=>'userinfo'
));
//向路由器中添加定义的路由
$router->addRoute('user',$route);

注:我表示我很晕,日志不好码啊,自己都不太懂。

3.静态路由

定义:特定的路由被设定成型Zend_Controller_Router_Route_Static。

例子:

<?php
//定义静态路由
$route = new Zend_Controller_Router_Route_Static(
'login',
array(
  'controller'=>'auth',
  'action'=>'login'
));
//向路由器中添加定义的路由
$router->addRoute('login',$route);

上述路由将匹配http://domain.com/login的URL,并将其分派到AuthController::loginAction()方法中。

4.正则表达式路由

Zend_Controller_Router_Route_Regex

案例:

<?php
//正则表达式路由
$route = new Zend_Controller_Router_Route_Regex(
  'archive/(\d+)',
  array(
    'controller'=>'archive',
    'action'=>'show'
  ));
//向路由器中添加定义的路由
$router->addRoute('archive',$route);

分析:

正则表达式路由定义的第一个参数中的动态部分(“/”后的内容)不再是一个变量,而是一个正则子模式。

在该例中,成功匹配http://domain.com/archive/2008之后,会返回如下结果值的数组。

$values = array(
1=>'2008',
'controller'=>'archive',
'action'=>'show'
);

后记:

我表示概念太多,很吃力。

希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。

PHP 相关文章推荐
Zend 输出产生XML解析错误
Mar 03 PHP
PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
Jun 09 PHP
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
Oct 19 PHP
PHP学习之数组值的操作
Apr 17 PHP
用PHP写的基于Memcache的Queue实现代码
Nov 27 PHP
推荐25款php中非常有用的类库
Sep 29 PHP
smarty模板判断数组为空的方法
Jun 10 PHP
详解php用curl调用接口方法,get和post两种方式
Jan 13 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
Aug 07 PHP
php实现微信发红包功能
Jul 13 PHP
php实现单笔转账到支付宝功能
Oct 09 PHP
PHP实现15位身份证号转18位的方法分析
Oct 16 PHP
Zend Framework分发器用法示例
Dec 11 #PHP
PHP与SQL语句常用大全
Dec 10 #PHP
PHP中SQL查询语句的id=%d解释(推荐)
Dec 10 #PHP
PHP获取页面执行时间的方法(推荐)
Dec 10 #PHP
PHP页面跳转实现延时跳转的方法
Dec 10 #PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
Dec 10 #PHP
浅谈php中curl、fsockopen的应用
Dec 10 #PHP
You might like
Content-type 的说明
2006/10/09 PHP
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
基于PHP中的常用函数回顾
2013/07/11 PHP
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
利用onresize使得div可以随着屏幕大小而自适应的代码
2010/01/15 Javascript
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
JS的location.href跳出框架打开新页面的方法
2014/09/04 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
js实现上传并压缩图片效果
2018/01/10 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
Vue使用Proxy代理后仍无法生效的解决
2020/11/13 Javascript
python @property的用法及含义全面解析
2018/02/01 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
keras 实现轻量级网络ShuffleNet教程
2020/06/19 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
Expedia马来西亚旅游网站:廉价酒店,度假村和航班预订
2016/07/26 全球购物
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
选购世界上最好的美妆品:Cult Beauty
2017/11/03 全球购物
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
linux面试题参考答案(9)
2016/01/29 面试题
医生自荐信
2013/10/11 职场文书
秋季运动会通讯稿
2014/01/24 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
Html5通过数据流方式播放视频的实现
2021/04/27 HTML / CSS