ZendFramework开发流程.doc_第1页
ZendFramework开发流程.doc_第2页
ZendFramework开发流程.doc_第3页
ZendFramework开发流程.doc_第4页
ZendFramework开发流程.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Zend Framework开发流程一、环境搭建和ZF安装*注本节内容大部分来至ZendFramework官方手册 1.1 Zend Framework下载Zend Framework 使用面向对象的PHP5 构建,需要 PHP 5.1.4 或更高版本。 请查阅 附录系统需求 了解更多信息。一旦合适的 PHP 环境建立起来,下一步是拥有一个 Zend Framework 的副本,可以通过下面的官方认可的途径获得:下载最新的稳定版本。 这个版本有 .zip 和 .tar.gz 两种格式,对于 Zend Framework 的新手来说是不错的选择。下载最新的每日快照(nightly snapshot)。 对于用于面对艰难险阻的人更加适用。每日快照可以体现出 Zend Framework 的开发进度。 快照同时含有英文版本和其他可用语言的文档。 如果希望使用最新的 Zend Framework 进行开发,请考虑使用 SVN (Subversion)客户端。使用 Subversion(SVN)客户端。Zend Framework 是开源软件,开发所使用的 Subversionu 仓库也是可公开访问的。如果已经在开发中使用了 SVN ,或者希望对框架有所贡献,再或者比发布版本更快的更新使用的框架,则可以考虑从 SVN 中获得 Zend Framework。导出 功能可以获得在工作目录中没有 .svn文件夹的指定版本的框架副本。检出 对于向 Zend Framework 进行贡献是很方便的,同时工作副本可以在任何时候使用 提交来更新。外部定义可以让开发者在他们的应用中方便的使用 SVN 同步框架版本。Zend Framework 的 SVN 仓库 URL 地址是:/svn/framework/trunk当拥有了一个可用的 Zend Framework 副本时,应用程序需要能够访问框架的类。虽然有 许多的方法来做到这个,PHP 的 include_path 必须含有 Zend Framework 库的路径。Front Controller 和 Model-View-Controller(MVC) 的实现是 Zend Framework 最有用的功能之一。 Zend Framework MVC入门Zend Framework 的组件不但能够轻松的配合,不同的组件也可以根据需求独立使用。下面的每一章文档都会专门介绍一个组件。1.2 PHP 版本需求Zend Framework 需要 PHP 5.1.4 或更高版本。例如 Countable 这样一些 SPL 接口在 PHP 之前的版本中没有被正式使用。Zend Framework 提供了大量自动化测试,可以使用 PHPUnit 3.0 或更高版本运行。 这个版本的 PHPUnit 同样也需要 PHP 5.1.4 或更高版本。虽然 Zend Framework 可以在上面提到的 PHP 版本下正确工作,但是强烈建议使用 PHP 5.2.2 或更高版本。 新版本的 PHP 有许多重要的安全更新和性能提升。1.3 Zend Framework 组件以及其使用到的 PHP 扩展Zend Framework 组件 PHP 扩展 (子类 / 使用方式)所有组件 pcre ( 依赖 ) SPL ( 依赖 ) standard ( 依赖 )Zend_Acl -Zend_Auth ctype ( Zend_Auth_Adapter_Http / 依赖 ) hash ( Zend_Auth_Adapter_Http / 依赖 )Zend_Cache apc ( Zend_Cache_Backend_Apc / 依赖 ) memcache ( Zend_Cache_Backend_Apc / 依赖 ) zlib ( Zend_Cache_Backend_Apc / 依赖 )Zend_Config libxml ( Zend_Config_Xml / 依赖 ) SimpleXML ( Zend_Config_Xml / 依赖 )Zend_Console_Getopt -Zend_Controller Reflection ( 依赖 ) session ( Zend_Controller_Action_Helper_Redirector / 依赖 )Zend_Date -Zend_Db ibm_db2 ( Zend_Db_Adapter_Db2 / 依赖 ) mysqli ( Zend_Db_Adapter_Mysqli / 依赖 ) oci8 ( Zend_Db_Adapter_Oracle / 依赖 ) pdo ( All PDO Adapters / 依赖 ) pdo_mssql ( Zend_Db_Adapter_Pdo_Mssql / 依赖 ) pdo_mysql ( Zend_Db_Adapter_Pdo_Mysql / 依赖 ) pdo_oci ( Zend_Db_Adapter_Pdo_Oci / 依赖 ) pdo_pgsql ( Zend_Db_Adapter_Pdo_Pgsql / 依赖 ) pdo_sqlite ( Zend_Db_Adapter_Pdo_Sqlite / 依赖 )Zend_Debug -Zend_Exception -Zend_Feed dom ( 依赖 ) libxml ( 依赖 ) mbstring ( 依赖 ) SimpleXML ( 依赖 )Zend_Filter Reflection ( 依赖 )Zend_Filter_Input Reflection ( 依赖 )Zend_Gdata ctype ( Zend_Gdata_App / 依赖 ) dom ( 依赖 ) libxml ( 依赖 )Zend_Http ctype ( Zend_Http_Client / 依赖 ) curl ( Zend_Http_Client_Adapter_Curl / 依赖 ) mime_magic ( Zend_Http_Client / 依赖 )Zend_Json json ( 可选 ) Reflection ( 依赖 )Zend_Loader -Zend_Locale bcmath ( Zend_Locale_Math / 可选 ) iconv ( Zend_Locale_Format / 依赖 )Zend_Log dom ( Zend_Log_Formatter_Xml / 依赖 ) libxml ( Zend_Log_Formatter_Xml / 依赖 ) Reflection ( 依赖 )Zend_Mail posix ( 可选 )Zend_Measure -Zend_Memory -Zend_Mime iconv ( Zend_Mime_Decode / 依赖 )Zend_Pdf ctype ( 依赖 ) gd ( 依赖 ) iconv ( 依赖 ) zlib ( 依赖 )Zend_Registry -Zend_Request -Zend_Rest ctype ( Zend_Rest_Client / 依赖 ) ( Zend_Rest_Server / 依赖 ) dom ( Zend_Rest_Server / 依赖 ) libxml ( Zend_Rest_Client / 依赖 ) ( Zend_Rest_Server / 依赖 ) Reflection ( Zend_Rest_Server / 依赖 ) SimpleXML ( Zend_Rest_Client / 依赖 )Zend_Search_Lucene ctype ( 依赖 ) bitset ( 可选 ) dom ( 依赖 ) iconv ( 依赖 ) libxml ( 依赖 )Zend_Server_Reflection Reflection ( 依赖 )Zend_Service_Akismet -Zend_Service_Amazon dom ( 依赖 ) libxml ( 依赖 )Zend_Service_Audioscrobbler iconv ( 依赖 ) libxml ( 依赖 ) SimpleXML ( 依赖 )Zend_Service_Delicious dom ( 依赖 ) libxml ( 依赖 )Zend_Service_Flickr dom ( 依赖 ) iconv ( 依赖 ) libxml ( 依赖 )Zend_Service_Simpy dom ( 依赖 ) libxml ( 依赖 ) libxml ( 依赖 )Zend_Service_StrikeIron soap ( 依赖 )Zend_Service_Yahoo dom ( 依赖 ) libxml ( 依赖 )Zend_Session session ( 依赖 )Zend_Translatexml( Zend_Translate_Adapter_Qt / 依赖 ) ( Zend_Translate_Adapter_Tmx / 依赖 ) ( Zend_Translate_Adapter_Xliff / 依赖 )Zend_Uri ctype ( 依赖 )Zend_Validate ctype ( 依赖 ) Reflection ( 依赖 )Zend_Version -Zend_View Reflection ( 依赖 )Zend_XmlRpc dom ( 依赖 ) iconv ( Zend_XmlRpc_Client / 依赖 ) libxml ( 依赖 ) Reflection ( Zend_XmlRpc_Server / 依赖 ) SimpleXML ( 依赖 )二、前期准备2.1 配置apache的mod_rewriteZF中为了实现MVC模式,对整个应用的所有请求全部通过一个启动文件(一般是根目录下的index.php)来分配到不同的控制器进 行处理(Zend_Controller_Front实现了Front Controller设计模式,所有的请求都通过front controller(前端控制器)并分发(dispatch)到不同的控制器来处理,分发的过程基于请求的URL。),因此需要对操作类URL进行 URL重写,以下对apache的mod_rewrite模块进行设置。先可以通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。如果没有开启“mod_rewrite”,则打开目录 您的apache安装目录“/apache/conf/” 下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的#号删除即可。如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。2.2 让apache服务器支持.htaccess如何让自己的本地APACHE服务器支持.htaccess呢?其实只要简单修改一下apache的httpd.conf设置就可以让APACHE支 持.htaccess了。打开httpd.conf文件(在那里? APACHE目录的CONF目录里面),用文本编辑器打开后,查找Options FollowSymLinksAllowOverride None改为Options FollowSymLinksAllowOverride All就可以了2.3 建立开发目录假设我们开发的目录为 C:/webroot/guestbook ,以下文件夹以 “./” 代替。我们采用ZF官方手册上推荐的结构。./application 应用代码文件夹,按照MVC模式建立结构controllers/ MVC控制器文件夹,放置ZF的控制器层文件models/ MVC模型文件夹,放置ZF的模型层文件views/ MVC视图文件夹,放置ZF的视图层文件filters/ 视图辅助-过滤器类文件夹helpers/ 视图辅助-视图辅助类文件夹scripts/ 视图文件夹./library ZF框架代码文件夹,将ZF安装包解压后的Zend文件夹放入其中./public 供前端访问的文件夹,主要用于存放图片、js脚本和css样式单images/ 图片文件夹scripts/ 脚本文件夹styles/ 样式表文件夹2.4 建立 “.htaccess” 文件如果是在windows平台下,刚开始还真不知道怎么建立.htaccess文件,因为这个文件实际上没有文件名,仅仅只有扩展名,通过普通方式是无法建立这个文件的,别着急,马上告诉你三种方法:三种方法都是先建立一个htaccess.txt的文本文件(当然,这个文本文件的名字你可以随便取),然后有三种方式给这个文件重命名:(1)用记事本 打开,点击文件-另存为,在文件名窗口输入.htaccess,注意是整个绿色部分,也就是包含英文引号,然后点击保存就行了。(2)进入cmd命 令窗口,通过cd切换当刚建立htaccess.txt文件的文件夹,然后输入命令:rename htaccess.txt .htaccess ,然后点击键盘Enter键即可。(3)通过ftp连接htaccess.txt所在文件夹,通过ftp软件重命名。那么我们须要建立几个“.htaccess” 文件,里面又输入什么内容呢?基本的原则是这样,根目录必须有一个,用于重定向(URl重写)所有的请求都会转到到index.php(交给前端控制 器);./application文件夹下须要一个,用于拒绝所有针对该文件夹内容的直接访问(比如 http:/localhost/application/models/User.php),这样做是因为所有访问请求必选通过前端控制器来分配访 问,其次为了安全;“./library”文件夹下的“.htaccess”同前;./public文件夹下必选建一个,因为这个文件夹的文件全部是 供前端直接访问的,因此须要撤销URl重写。以下是4个“./htaccess”文件的内容:./.htaccessRewriteEngine onRewriteRule !.(js|ico|gif|jpg|png|css)$ index.php./application/.htaccessdeny from all./library/.htaccessdeny from all./publicRewriteEngine off实际上,apache的url重写功能也可以直接在httpd.conf文件中进行设置,这里就不具体讲了,网上相关的教程也很多。三、创建应用的入口文件./index.php实际上,这个文件不一定须要命名为index.php,关键看你在url重写的时候把访问请求定向到了哪个文件,但是由于index.php是apache默认的欢迎页面,建议采用index.php命名。通过URL重写,应用所有的访问请求将定向到”./index.php“,在这个文件中,将初始化一个ZF的前端控制器,这个控制器将负责对所有的请求进行分配,即分配到指定的控制器,下面我们来看一下一个假设请求的访问流程(假设我们的请求是:http:/localhost/register/form):http:/localhost/register/form-文件./index.php-ZF 类Zend_Controller_Front实例-文件夹./application/controllers- ZF控制器类registerController-控制器类中定义的处理函数formAction-视图层文件./application/views/script/register/form.phtml-返回结果以下是ZF官方手册中对控制器的解释Zend_Controller是ZendFramework的 MVC体系的核心部份。MVC指Model-View-Controller,是一个用于分离应用逻辑和表现逻辑的设计模式。 Zend_Controller_Front实现了Front Controller设计模式,所有的请求都通过front controller(前端控制器)并分发(dispatch)到不同的控制器来处理,分发的过程基于请求的URL。Zend_Controller体系具有可扩展性,可以通过继承已有的类或者自己写个新的类来实现各种接口和抽象类,也可以编写插件或者助手类(helper)来增强系统的功能。在讨论控制器之前,你应该先理解Zend Framework是如何处理HTTP请求的。默认情况下,URL的第一个部份会映射到一个控制器,第二个部份则映射到控制器类中的Action(即控制器类内部的一个方法)。例如:URL/roadmap/components,其服务器路 径为/roadmap/components,则会映射到roadmap控制器和componentsAction。如果不存在action,则会调用 index这个action。如果控制器不存在,则会自动调用index控制器。(按照Apache的命名惯例,自动映射到DirectoryIndex 文件)接下来,Zend_Controller的dispatcher会根据控制器的名称找到具体的控制器类。通常它会把控制

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论