`
lfq618
  • 浏览: 88466 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Zend Framework自定义路由一则

阅读更多

经常性的看到如下的url:

http://www.junstudio.cn/id/4

或者更干脆

http://www.junstudio.cn/3

链接清爽,且搜索引擎友好.
ZF为我们提供了快速简单的实现方式,代码如下

  1. //$front为前段控制器实例  
  2. $router = $front->getRouter();  
  3. //实现如http://www.junstudio.cn/id/4类型的url  
  4. $router->addRoute(test1,   
  5.     new Zend_Controller_Router_Route(id/:aid,   
  6.         array(  
  7.             controller=>index,  
  8.             action=>view                          
  9.         )  
  10.     )  
  11. )  
  12. //实现如http://www.junstudio.cn/3类型的url  
  13. ->addRoute(test2,   
  14.     new Zend_Controller_Router_Route(/:aid,   
  15.         array(  
  16.             controller=>index,  
  17.             action=>view                          
  18.         )  
  19.     )  
  20. );


addRoute有两个参数,第一个为URL规则名称,第二个为URL规则的实例,该实例对应类必须实现Zend_Controller_Router_Interface接口,通常为Zend_Controller_Router_Route.
Zend_Controller_Router_Route有三个参数,定义原型为:
public function __construct($route, $defaults = array(), $reqs = array())
其中,
$route为URL匹配的方式, 例如test1实例中的’id/:aid’表示匹配http://www.junstudio.cn/id/x,”:”代表之后为URL变量分隔符, 表示在实际的URL中aic为变量.
$defaults表示在URL匹配$route指定的形式时默认的各种参数,本例中设置了 控制器为index,动作为view, 所以当URL匹配时则相当于访问了http://www.junstudio.cn/index/view/id/x
$reqs则用于指定匹配的正则表达式, 例如 我们可以指定aid为整数时才匹配, 则:

  1. $router->addRoute(test1,   
  2. new Zend_Controller_Router_Route(id/:aid,   
  3.         array(  
  4.             controller=>index,  
  5.             action=>view                          
  6.           )  
  7.       ),  
  8. array(aid=>\d+)  
  9. )  
  10. );  
  11. $router->addRoute(test1,
  12. new Zend_Controller_Router_Route(id/:aid,
  13.         array(
  14.             controller=>index,
  15.             action=>view                       
  16.           )
  17.       ),
  18. array(aid=>\d+)
  19. )
  20. );

简单的介绍下,更多请查看ZF手册.

补充:
定义了’id/:aid’形式的路由规则之后,在动作控制器中,使用
$this->_request->getParam(‘aid’);
来获得id值.

分享到:
评论

相关推荐

    zend framework2例子album 完整能运行

    Zend Framework 2(ZF2)是一个面向对象的、模块化且高性能的PHP开发框架,用于构建Web应用程序和服务。本示例“album”是ZF2官方提供的一个基础教程项目,旨在帮助开发者快速理解和学习如何在ZF2中进行实际的开发...

    Zend Framework教程之Zend_Controller_Plugin插件用法详解

    在Zend Framework中,`Zend_Controller_Plugin`是一个强大的机制,允许开发者在应用程序的不同阶段插入自定义的行为,以扩展和增强其功能。插件系统提供了一种灵活的方式,可以在请求生命周期的关键点进行干预,如...

    2013年最近Zend Framework2图书Web Development with Zend Framework 2

    6. 自定义模块的创建: 书中介绍了如何创建一个自己的“HelloWorld”模块,这是学习Zend Framework 2基础知识的重要步骤。书中还详细阐述了如何进行自动加载(Autoloading)、单次请求处理以及如何使用服务管理器...

    Zend Framework ppt入门教程

    在 Zend Framework 中,你可以自定义路由规则,以实现灵活的URL设计。这将帮助你理解如何设置和使用路由,以及如何通过路由参数传递数据。 依赖注入是 Zend Framework 中的一个重要概念,它有助于提高代码的可测试...

    zendframework增删改查

    "zendframework增删改查"这个主题主要涵盖了使用ZF进行数据操作的基础知识。 **1. 数据库连接与配置** 在 Zend Framework 中,我们通常使用`Zend_Db`组件来管理数据库连接。首先,需要在`application/configs/...

    Zend Framework中文手册

    通过 `Zend_Controller_Router` 和 `Zend_Controller_Router_Route` 类,你可以创建自定义路由规则,以满足不同应用场景的需求。 5. **视图(Views)** 视图负责呈现应用程序的数据。`Zend_View` 类提供了一种模板...

    zendframework 留言板 经典

    总结来说,"zendframework 留言板 经典"是一个学习和实践 Zend Framework 框架的示例项目,涵盖了Web应用开发的基础要素,如MVC架构、数据库操作、URL路由、页面渲染等。通过分析和理解这个项目,开发者可以更好地...

    ZendFramework-2.2.5.tgz

    在 Zend Framework 2 中,开发者可以自定义路由规则来处理复杂的 URL 结构。控制器则处理路由匹配后的业务逻辑,并调用模型进行数据操作,最后返回视图层进行渲染。 6. **视图层次结构**: 视图层使用模板引擎,...

    php-smarty 还有zend framework

    而Zend Framework则作为整个应用的架构基础,负责处理请求、路由、模型与数据交互,以及视图的渲染(可以与Smarty结合使用)。开发者可以利用Zend Framework的强大功能来构建复杂的业务逻辑,同时使用Smarty来提供...

    Zend FrameWork 中文教程

    在 Zend Framework 中,URL路由系统允许自定义友好的URL结构,使得SEO优化更为容易。你可以通过定义路由规则将特定的URL映射到特定的控制器和动作。 **4. 模块化开发** 框架支持模块化开发,每个模块可以视为独立的...

    zendframework留言分页

    在本项目中,我们主要探讨如何使用Zend Framework实现一个基于MySQL数据库的留言系统的分页功能。 Zend Framework是一款流行的PHP开发框架,它提供了丰富的组件和工具,使得开发过程更加高效和规范。下面我们将深入...

    zend framework中英文手册合集

    Zend Framework 提供了强大的表单组件,支持自定义表单元素、验证规则和过滤器。这使得创建复杂表单和进行客户端及服务器端验证变得简单。 **7. 服务组件** 通过 Zend_Service,开发者可以轻松集成第三方服务,如 ...

    Zend Framework 中文帮助手册chm.PDF2个版本

    1. **Zend Framework 简介**:Zend Framework 是一个基于组件的 PHP 框架,采用 Model-View-Controller (MVC) 设计模式,旨在提高开发效率和代码质量,支持服务导向架构(SOA)和Web 2.0应用。 2. **CHM 和 PDF ...

    zend framework 对内容进行编辑

    6. **路由与调度(Routing and Dispatching)**:在 Zend Framework 中,URL 路由和调度是通过 Zend_Controller_Front 实现的。编辑页面的 URL 可以被映射到特定的控制器和动作,例如 `/edit/:id` 可能会映射到 `...

    Zend Framework例子

    7. **Library**:自定义或第三方库,可能包含自定义的 Zend Framework 组件或者其他的 PHP 类库。 8. **Public**:公开可访问的资源,如 CSS、JavaScript 文件和图片。 通过分析和学习 `mvcDemo`,开发者可以理解 ...

    zendframework blog

    本项目“zendframework blog”就是基于该框架构建的一个博客系统,旨在展示如何利用Zend Framework实现一个完整的博客平台。 ### 1. MVC架构 在Zend Framework中,MVC模式是核心设计思想。模型(Model)负责处理...

    Zend_Framework 中文手册

    插件管理机制使得扩展和自定义 Zend Framework 的功能变得简单,通过实现特定接口或继承特定基类,开发者可以创建自己的插件。 10. **自动加载(Autoloading)** Zend Framework 实现了PSR-0和PSR-4标准的自动...

    Web+Development+with+Zend+Framework+2+(2013)

    本书《Web Development with Zend Framework 2 (2013)》是一本专注于Zend Framework 2的教材,由Michael Romer编写。由于Zend Framework 2与前代1版本存在不兼容问题,所以本书与旧版书籍的内容无法通用。 首先,...

Global site tag (gtag.js) - Google Analytics