经常性的看到如下的url:
http://www.junstudio.cn/id/4
或者更干脆
http://www.junstudio.cn/3
链接清爽,且搜索引擎友好.
ZF为我们提供了快速简单的实现方式,代码如下
- //$front为前段控制器实例
-
$router = $front->getRouter();
-
//实现如http://www.junstudio.cn/id/4类型的url
-
$router->addRoute(‘test1‘,
-
new Zend_Controller_Router_Route(‘id/:aid‘,
-
array(
-
‘controller‘=>‘index‘,
-
‘action‘=>‘view‘
-
)
-
)
-
)
-
//实现如http://www.junstudio.cn/3类型的url
-
->addRoute(‘test2‘,
-
new Zend_Controller_Router_Route(‘/:aid‘,
-
array(
-
‘controller‘=>‘index‘,
-
‘action‘=>‘view‘
-
)
-
)
-
);
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为整数时才匹配, 则:
-
$router->addRoute(‘test1‘,
-
new Zend_Controller_Router_Route(‘id/:aid‘,
-
array(
-
‘controller‘=>‘index‘,
-
‘action‘=>‘view‘
-
)
-
),
-
array(‘aid‘=>‘\d+‘)
-
)
- );
-
$router->addRoute(‘test1‘,
-
new Zend_Controller_Router_Route(‘id/:aid‘,
-
array(
-
‘controller‘=>‘index‘,
-
‘action‘=>‘view‘
-
)
-
),
-
array(‘aid‘=>‘\d+‘)
-
)
-
);
简单的介绍下,更多请查看ZF手册.
补充:
定义了’id/:aid’形式的路由规则之后,在动作控制器中,使用
$this->_request->getParam(‘aid’);
来获得id值.
分享到:
相关推荐
Zend Framework 2(ZF2)是一个面向对象的、模块化且高性能的PHP开发框架,用于构建Web应用程序和服务。本示例“album”是ZF2官方提供的一个基础教程项目,旨在帮助开发者快速理解和学习如何在ZF2中进行实际的开发...
在Zend Framework中,`Zend_Controller_Plugin`是一个强大的机制,允许开发者在应用程序的不同阶段插入自定义的行为,以扩展和增强其功能。插件系统提供了一种灵活的方式,可以在请求生命周期的关键点进行干预,如...
6. 自定义模块的创建: 书中介绍了如何创建一个自己的“HelloWorld”模块,这是学习Zend Framework 2基础知识的重要步骤。书中还详细阐述了如何进行自动加载(Autoloading)、单次请求处理以及如何使用服务管理器...
在 Zend Framework 中,你可以自定义路由规则,以实现灵活的URL设计。这将帮助你理解如何设置和使用路由,以及如何通过路由参数传递数据。 依赖注入是 Zend Framework 中的一个重要概念,它有助于提高代码的可测试...
"zendframework增删改查"这个主题主要涵盖了使用ZF进行数据操作的基础知识。 **1. 数据库连接与配置** 在 Zend Framework 中,我们通常使用`Zend_Db`组件来管理数据库连接。首先,需要在`application/configs/...
通过 `Zend_Controller_Router` 和 `Zend_Controller_Router_Route` 类,你可以创建自定义路由规则,以满足不同应用场景的需求。 5. **视图(Views)** 视图负责呈现应用程序的数据。`Zend_View` 类提供了一种模板...
总结来说,"zendframework 留言板 经典"是一个学习和实践 Zend Framework 框架的示例项目,涵盖了Web应用开发的基础要素,如MVC架构、数据库操作、URL路由、页面渲染等。通过分析和理解这个项目,开发者可以更好地...
在 Zend Framework 2 中,开发者可以自定义路由规则来处理复杂的 URL 结构。控制器则处理路由匹配后的业务逻辑,并调用模型进行数据操作,最后返回视图层进行渲染。 6. **视图层次结构**: 视图层使用模板引擎,...
而Zend Framework则作为整个应用的架构基础,负责处理请求、路由、模型与数据交互,以及视图的渲染(可以与Smarty结合使用)。开发者可以利用Zend Framework的强大功能来构建复杂的业务逻辑,同时使用Smarty来提供...
在 Zend Framework 中,URL路由系统允许自定义友好的URL结构,使得SEO优化更为容易。你可以通过定义路由规则将特定的URL映射到特定的控制器和动作。 **4. 模块化开发** 框架支持模块化开发,每个模块可以视为独立的...
在本项目中,我们主要探讨如何使用Zend Framework实现一个基于MySQL数据库的留言系统的分页功能。 Zend Framework是一款流行的PHP开发框架,它提供了丰富的组件和工具,使得开发过程更加高效和规范。下面我们将深入...
Zend Framework 提供了强大的表单组件,支持自定义表单元素、验证规则和过滤器。这使得创建复杂表单和进行客户端及服务器端验证变得简单。 **7. 服务组件** 通过 Zend_Service,开发者可以轻松集成第三方服务,如 ...
1. **Zend Framework 简介**:Zend Framework 是一个基于组件的 PHP 框架,采用 Model-View-Controller (MVC) 设计模式,旨在提高开发效率和代码质量,支持服务导向架构(SOA)和Web 2.0应用。 2. **CHM 和 PDF ...
6. **路由与调度(Routing and Dispatching)**:在 Zend Framework 中,URL 路由和调度是通过 Zend_Controller_Front 实现的。编辑页面的 URL 可以被映射到特定的控制器和动作,例如 `/edit/:id` 可能会映射到 `...
7. **Library**:自定义或第三方库,可能包含自定义的 Zend Framework 组件或者其他的 PHP 类库。 8. **Public**:公开可访问的资源,如 CSS、JavaScript 文件和图片。 通过分析和学习 `mvcDemo`,开发者可以理解 ...
本项目“zendframework blog”就是基于该框架构建的一个博客系统,旨在展示如何利用Zend Framework实现一个完整的博客平台。 ### 1. MVC架构 在Zend Framework中,MVC模式是核心设计思想。模型(Model)负责处理...
插件管理机制使得扩展和自定义 Zend Framework 的功能变得简单,通过实现特定接口或继承特定基类,开发者可以创建自己的插件。 10. **自动加载(Autoloading)** Zend Framework 实现了PSR-0和PSR-4标准的自动...
本书《Web Development with Zend Framework 2 (2013)》是一本专注于Zend Framework 2的教材,由Michael Romer编写。由于Zend Framework 2与前代1版本存在不兼容问题,所以本书与旧版书籍的内容无法通用。 首先,...