前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >zend framework项目分组(初级版)

zend framework项目分组(初级版)

作者头像
苦咖啡
发布2018-05-08 18:16:03
7440
发布2018-05-08 18:16:03
举报
文章被收录于专栏:我的博客我的博客

Zend_Controller_Front 控制了Zend_Controller系统的整个工作流。它是前端控制器(FrontController)模型的解释。Zend_Controller_Front处理所有由服务器接收的请求并负责把请求派发给动作控制器

Zend_Controller_Request_Abstract (often referred to as the Request Object)描述请求环境和提供设置和读取控制器和动作名字以及任何请求参数的方法。另外它跟踪它所包含的动作是否被Zend_Controller_Dispatcher派遣。抽象请求对象的扩展可被用来封装整个请求环境,为了设置控制器和动作的名字,它允许路由器从请求环境中读出信息。 缺省地,Zend_Controller_Request_Http被用来访问整个HTTP请求环境。

Zend_Controller_Router_Interface用来定义路由器。路由是个过程,在这个过程中它通过检查请求环境来决定哪个个控制器和哪个控制器中的动作应该接受请求。控制器、动作和可选的参数就通过Zend_Controller_Dispatcher_Standard处理来设置在请求对象中。路由只发生一次:在最初收到请求并在第一个控制器被派遣之前。 缺省路由器,Zend_Controller_Router_Rewrite,从Zend_Controller_Request_Http取出URI的终点作为参数并基于在url中的路径信息分解成控制器、动作和参数。作为一个例子,URL http://localhost/foo/bar/key/value将被解析为foo控制器、bar 动作和带有一个值value的参数key。 Zend_Controller_Router_Rewrite也可以用来匹配任意的路径

Zend_Controller_Dispatcher_Interface被用来定义派遣器。派遣是个过程,在这个过程中它从请求对象中取出控制器和动作并映射它们到控制器文件/类和在控制器中的动作方法。如果控制器和动作不存在,它派遣缺省的控制器和动作。

实际的派遣过程包括初始化控制器类和在这个类中调用动作方法。不像路由,只发生一次,派遣是循环发生的。如果请求对象的派遣状态在任何点上重置,循环将被重复,调用不论哪个当前在请求对象中的动作。第一次循环随请求对象的派遣状态设置(布尔 true)完成,它将完成处理。 缺省的派遣器是Zend_Controller_Dispatcher_Standard。它定义控制器为以Controller结尾的 MixedCasedClasses,并且动作为以Action结尾的camelCasedMethods:FooController::barAction()。在这个例子中,控制器是foo,动作是bar

Zend_Controller的工作流相当简单。请求被Zend_Controller_Front接收,然后它调用Zend_Controller_Router_Rewrite来决定哪个控制器(和控制器中的动作)被派遣。为了在请求中设置控制器和动作名字Zend_Controller_Router_Rewrite分解URI。Zend_Controller_Front接着进入一个派遣循环。它调用Zend_Controller_Dispatcher_Standard,传递给它请求,派遣在请求(或使用缺省的)中指定的控制器和动作。在控制器完成之后,控制返回到Zend_Controller_Front。如果控制器通过重置请求派遣状态指示其它的控制器应该被派遣,循环将继续并且其它派遣被执行。否则,处理结束。

搞了半天,终于分组成功了 resources.frontcontroller.moduledirectory = APPLICATION_PATH “/modules” resources.frontcontroller.defaultModule = “default” resources.frontController.controllerDirectory = APPLICATION_PATH “/controllers”

然后默认的模块是default而文件夹布局是:

这样在admin控制器需要这样写:

class Admin_IndexController extends Zend_Controller_Action { public function indexAction() { echo ‘这里是admin模块下的index控制器下的index方法’; exit(); } }

这样访问:localhost就会默认访问default下的index控制器 而访问localhost/admin就会访问admin文件夹下控制器 PS:我以前看过tp的分组,还没有完全掌握zf的分组。今天先写这么多吧!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013年2月1日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档