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 相关文章推荐
PHP与SQL注入攻击[三]
Apr 17 PHP
使ecshop模板中可引用常量的实现方法
Jun 02 PHP
php根据分类合并数组的方法实例详解
Nov 06 PHP
php中调用其他系统http接口的方法说明
Feb 28 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
两千行代码的PHP学习笔记汇总
Oct 05 PHP
php实现微信公众平台账号自定义菜单类
Oct 11 PHP
在WordPress的文章编辑器中设置默认内容的方法
Dec 29 PHP
Yii2针对指定url的生成及图片等的引入方法小结
Jul 18 PHP
PHP Oauth授权和本地加密实现方法
Aug 12 PHP
PHP使用递归算法无限遍历数组示例
Jan 13 PHP
ThinkPHP 模板引擎使用详解
May 07 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
php sprintf()函数让你的sql操作更安全
2008/07/23 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
2011/12/19 PHP
PHP警告Cannot use a scalar value as an array的解决方法
2012/01/11 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
PHP查询分页的实现代码
2017/06/09 PHP
php+ajax实现商品对比功能示例
2019/04/13 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
原始XMLHttpRequest方法详情回顾
2013/11/28 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
分析JavaScript数组操作难点
2017/12/18 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
js实现蒙版效果
2020/01/11 Javascript
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
Python3将ipa包中的文件按大小排序
2020/04/17 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
俄罗斯运动、健康和美容产品在线商店:Lactomin.ru
2020/07/23 全球购物
市场营销专业毕业生求职信
2014/03/26 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书