第8章ZendFramework框架(上机)精品PPT课件
- 格式:ppt
- 大小:1.46 MB
- 文档页数:20
ZendFramework⼊门教程⼀、Zend Framework简介1. 什么是ZendFrameworkZend Framework(ZF or ZFW)是PHP的母公司Zend公司开发的⼀套PHP开发框架技术,它提供了⼀个优秀的、简单的综合开发环境,提供了很多可⽤的解决⽅案,可以⽤来建⽴⼀个稳定的、可升级的的Web应⽤。
所谓框架,是整个或者部分系统的可重⽤设计,它⾸先要提供⼀个可复⽤的应⽤参考架构,阐明整个设计、组件之间的依赖关系、责任分配和控制流程,也包含⼀些设计规范等等。
它提供了对⼀些通⽤问题的解决⽅案。
另外Zend Framework采⽤常见的MVC模型(在后续具体介绍),这样可以⽐较⽅便的达到关注点分离的⽬的,可以⽐较⽅便的建⽴基于MVC 架构的Web应⽤(典型的MVC Web架构还有Struct等等,它们原理都很类似)(PHP的类似框架还有很多如:yaf)2. 什么是LAMPLAMP是Linux+Apache+Mysql+Perl/PHP/Python的缩写,它们是⼀组经常⽤来搭建动态⽹站或者服务器的开源软件,本⾝都是各⾃独⽴的程序,但是因为常被放在⼀起使⽤,拥有了越来越⾼的兼容度,共同组成了⼀个强⼤的Web应⽤程序平台,由于都是开源软件,除了免费使⽤的诱惑,还有可以修改源码、⾃⼰进⾏控制等优点,LAMP是⼤多数⽹站开发者和很多⼤公司(如:Facebook和Baidu)的不⼆选择。
从⽹站的流量上来说,70%以上的访问流量是LAMP来提供的,可见LAMP是最强⼤的⽹站解决⽅案.(其它类似的⽅案如MS的.NET框架和Oracle的J2EE框架,三者同样强⼤)为什么要说LAMP呢,因为这些软件的组合强⼤到只要提到⼀个就必须要提到另外三个的地步,⽽在实验室⽹站的建设中,我们使⽤PHP,我们采取的当然也是LAMP的框架3. Zend Framework的安装XAMPP:Apache FriendsZend安装和使⽤另外需要注意的是,默认的Zend Framework使⽤MVC机制,它采⽤rewrite的⽅式进⾏跳转,这就需要在apache的配置⽂件中(⼀般是httpd.conf)修改加⼊允许rewrite的选项,需要的步骤是:1. 找到LoadModule rewrite_modulemodules/mod_rewrite.so将其前⾯的#去掉2. 在项⽬所在的⽬录下<Directory “projectPath”>中修改AllowOverride的值为All,Order allow,deny / Allow from all3. 在项⽬所在根⽬录下建⽴.htaccess⽂件,内容为RewriteEngine on #重写引擎打开RewriteRule!\.(js|ico|gif|jpg|png|css)$ index.php#制定除js,ico,gif,jpg,png,css以外的⽂件全都被重置到index.php,index.php为项⽬的⾸页(其实是前端转发控制页)简单的Zend Framework安装测试⽅法:创建⽂件test.php内容:<?phprequire_once(‘Zend/Date.php’);$date=new Zend_Date();echo $date>如果能正常输出则说明Zend安装⼤体正常。
Z end Framework MVC的结构The Zend Framework MVC Architecture 一、概述:In this chapter, we will cover the following topics:1. Zend framework MVC overview2. The Front Controller3. The router4. The dispatcher5. The Request object6. The Response object二、详细介绍:1、Zend Framework MVC overview1)了解请求(REQUEST)的产生与处理过程9.派遣postDispatch时间被触发;//派遣循环结束10. 检测派遣标志,即检查是否还有动作没有完成,如果有再次进入派遣循环(第6步);11. 派遣事件dispatchLoopShutdown被触发;12. 产生的响应Response被返回。
2、The Front Controller--------前端控制器1)介绍:前端控制器是MVC组建中的苦力,因为它要实例化对象、触发事件、建立默认的行为等,它的主要目的是处理所有进入应用的请求。
前端控制器的设计模式被应用于不同的MVC框架中,我们在Zend Framework中指代的前端控制器(Front Controller)实际上是指Zend_Controller_Front类,因为该类实现了前端控制器的模式;另一定注意的是,前端控制器设计是单例模式(Singleton),这也就意味着它实现了单例设计模式,也就是仅仅只能有一个实例化的前端控制器,即我们不能直接实例化Front Controller,而是拿取一个:$front = Zend_Controller_Front::getInstance();2)默认情况下,Front Controller负责实例化很多对象,并且是针对WEB应用的,即这些对象都是默认指定在HTTP环境下被实例化出来的,例如下表:这个表显示出了创建对象的类型,抽象类abstract class是被用于实体类concrete class继承,实体类是被前端控制器调用并实例化使用的!!插件经纪人有些特别因为它与运行环境无关,即在HTTP环境下和在CLI环境下是一样的。
为了创建项目,你必须首先下载并解压缩Zend框架。
相处了一个完整的Zend框架的PHP堆栈最简单的方法是通过安装»Zend服务器。
Zend服务器有本地安装的Mac OSX,Windows中的Fedora Core和Ubuntu,以及作为一个普遍的兼容大多数Linux发行版的安装包。
框架文件后,您已经安装了Zend服务器,可根据发现的/ usr /本地/ ZEND / Mac OSX和Linux上的份额/ ZendFramework,和C :\ Program Files文件\的Zend \ ZendServer \共享\ ZendFramework Windows上。
已配置的include_path将包括Zend框架。
或者,您可以»下载最新版本的Zend框架和提取的内容,使你这样做了说明。
或者,您可以将路径添加到库/归档文件的子目录到你的php.ini 的设置。
这就是它!Zend框架正在安装,并准备使用。
注:ZF在您的Zend Framework安装的命令行工具是一个bin /子目录中,包含脚本zf.sh和zf.bat,分别为基于UNIX和基于Windows的用户。
使这个脚本的绝对路径的说明。
无论你看到的命令引用ZF,请替换脚本的绝对路径。
在类Unix系统,你可能想使用shell 的别名功能:如果你有问题设立的ZF命令行工具,请参阅到的别名zf.sh =路径/ / ZendFramework / BIN / zf.sh。
手册。
打开一个终端(在Windows中,开始- >运行,然后使用CMD)。
导航到一个目录,您想启动一个项目。
然后,使用相应的脚本路径,并执行下列之一:1.%ZF创建项目快速启动运行此命令将创建您的网站的基本结构,包括你最初的控制器和视图。
树看起来如下:1.快速入门2.| - 应用3.| | - Bootstrap.php4.| | - CONFIGS5.| |` - 的application.ini6.| | - 控制器7.| | | - ErrorController.php8.| |` - IndexController.php9.| | - 模型10.|` - 意见11.| | - 佣工12.|` - 脚本13.| | - 错误14.| |` - error.phtml15.|` - 指数16.|` - index.phtml17.| - 库18.| - 公共19.| | - htaccess的。
Zend Framework中的简单工厂模式图文某天又然后想到好久没复习设计模式了。
综合一下,复习一个设计模式之后在ZF中找一下使用这模式的源码吧,不读所有源码,读读比较”高级”的部分吧,要说模式,暂时不知道是不是所有模式ZF里面都有,但是应该有足够的模式够我最近看了,在说可以找找其他开源的软件来找模式前段时间用来ZF,把他当黑盒感觉不是很好,一直有看其源码的冲动,但是。
如果一点一点点看的话,挑战确实有些大了。
某天又然后想到好久没复习设计模式了。
综合一下,复习一个设计模式之后在ZF中找一下使用这模式的源码吧,不读所有源码,读读比较”高级”的部分吧,要说模式,暂时不知道是不是所有模式ZF里面都有,但是应该有足够的模式够我最近看了,在说可以找找其他开源的软件来找模式。
这段时间被各种笔试神马乱七八糟的把生活搞得稍微有点乱,但是不管怎样,复习还是必须的吧。
再说一下ZF吧,ZF一个好处就是各个component比较独立,component之间没有过多的依赖,这样一来,为使用者提供了方便,当然也为我这样无聊且懒的想看源码的人提供了方便。
今天看看简单工厂,ZF里面不缺模式,更不缺工厂模式,大名鼎鼎的的Zend_Db就毫不吝啬的使用简单工厂,再ctrl+h(zend studio下)一下会发现factory特别多,如果没猜错应该大多应该也是简单工厂。
由于Zend_Db最常用,我也就自然的会比较想看一下他的实现。
在查看源码之前先复习一下怎么用Zend_Db和简单工厂(这里是一个stack,先复习简单工厂)。
复习简单工厂模式用类图回忆一下,简单工厂类图:借用《研磨设计模式》作者的一张图,可以看到Client通过factory来获取对象,通过Api结构来调用。
用factory把具体的Api的创建隐藏起来。
而其他所有使用者在使用时,只需要知道用facto ry创建,通过Api结构调用即可,简单复习完成。
看到类图应该能想起简单工厂了,因为他本身确实很简单。
Zend Framework & MVC 介绍Zend FrameworkZend Framework 是一个为PHP5开发的开源、面向对象的web应用程序框架。
Zend Framework 经常被称为“组件库”,因为它有许多松散链接的、几乎独立使用的组件。
但是Zend Framework 也提供高级的“模型-试图-控制器(MVC)”组件(implementation),它能够为你的应用程序建立一个基本结构。
带有简短描述的Zend Framework完整组件列表可以在»components overview中找到。
这个快速教程将向你介绍一些Zend Framework的最常用的组件,包括Zend_Controller, Zend_Layout, Zend_Config, Zend_Db, Zend_Db_Table, Zend_Registry,,还包括一些制图助手。
使用这些组件,我们将在几分钟内建立一个简单的数据库驱动的留言板(guestbook)应用程序。
程序的完整源代码可以从下面的压缩文件中得到:∙» zip∙» tar.gzModel-View-Controller这就是每个人谈论的MVC模式。
为什么应该关心?MVC不仅仅是听起来时髦,随时可以读出的由三个首字母组成的缩略语,它几乎已经成为web应用程序的设计标准。
有充分的理由相信,大多数的web应用程序代码属于下面三个类别中的一个:展示、业务逻辑和数据存取。
MVC模式模型分开关注这三个方面(The MVC pattern models this separation of concerns well)。
最终,展示代码将成为带有业务逻辑和数据存储代码的应用程序的一部分。
许多开发者已经发现这种为了组织代码而定义明确的分离,特别是当不止一个开发者工作于同一个应用程序时。
注:更多信息我们来打破这种模式,来看看各个单件:模型(Model)-这是你的应用程序的一部分,其在一系列抽象概念后定义了基本功能。
zentaoPHP框架手册目录1、框架介绍 (3)1.1、关于zentaoPHP框架 (3)1.1.1、zentaoPHP框架的缘起 (3)1.1.2、zentaophp框架的特点 (3)1.2、zentaophp框架的主要功能 (4)1.2.1、单一入口模式 (4)1.2.2、MVC模式 (4)1.2.3、支持GET和PATH_INFO两种方式调用 (5)1.2.4、内置数据库访问层DAO (5)1.2.5、支持跨模块之间的调用 (5)1.2.6、无需路由配置,即可获得简捷的URL (5)1.2.7、灵活的数据验证机制 (6)1.2.8、配置和语言可以通过对象方式引用 (6)1.2.9、方便的全局变量应用 (6)1.2.10、所见即API (6)1.2.11、内置多语言支持 (6)1.2.12、强大的扩展机制 (6)1.3、zentaophp框架授权协议 (7)2、框架安装 (7)2.1、zentaoPHP框架系统要求 (7)2.2、zentaoPHP框架安装 (8)2.2.1、安装apache, mysql, php的运行环境 (8)2.2.2、获取最新的zentaoPHP框架 (8)2.2.3、安装zentaoPHP框架 (8)2.2.4、建立demo数据库 (8)2.2.5、生成配置文件 (8)2.2.6、访问demo应用 (9)3、快速入门 (10)3.1、简单的Hello world! (10)3.1.1、了解框架目录结构 (10)3.1.2、创建hello模块 (11)3.1.3、创建control.php文件 (11)3.1.4、访问helloworld应用 (11)3.2、使用MVC实现的hello world! (11)3.2.1、仅有control.php的hello world. (12)3.2.2、有model层的hello world. (12)3.2.3、带有view层的hello world. (13)3.3、部署框架自带的简单的blog示例 (14)3.3.1、创建数据库 (14)3.3.2、创建应用的配置文件 (15)3.3.3、访问blog应用 (15)4、框架基础 (16)4.1、zentaoPHP框架里面的基本概念 (16)4.1.1、router (16)4.1.2、app (17)4.1.3、config, lang, dbh (17)4.1.4、URI,module,control, model and view (17)4.2、zentaoPHP框架的两种请求方式 (18)4.2.1、传统GET方式 (18)4.2.2、静态友好方式 (18)4.3、如何生成链接 (19)4.3.1、$this->createLink()方法 (19)4.3.2、helper::createLink()方法 (20)4.3.3、JS版本的createLink()方法 (20)4.4、框架里面提供的html, js和css类 (20)4.4.1、html类 (20)4.4.2、JS类 (21)4.4.3、css类 (22)5、深入框架 (22)5.1、zentaoPHP目录结构 (22)5.1.1、顶级目录结构 (22)5.1.2、具体到一个模块的目录结构 (22)5.2、zentaoPHP框架提供的DAO功能 (23)5.2.1、关于DAO的说明 (23)5.2.2、执行方法的区别 (23)5.2.3、操作符说明 (24)5.2.4、查询语句: (24)5.2.5、插入语句 (25)5.2.6、更新语句 (26)5.2.7、REPLACE语句 (26)5.2.8、删除语句 (26)5.3、zentaoPHP框架的分页解决方案 (27)5.3.1、browse方法关于分页的三个参数 (27)5.3.2、model方法中调用pager对象 (27)5.3.3、control中将pager对象赋值给模板 (28)5.4、zentaoPHP框架中的数据验证机制 (28)5.4.1、验证规则放在什么地方? (29)5.4.2、zentaoPHP框架验证机制说明 (29)5.4.3、数据修正 (29)5.4.4、数据检查 (30)5.4.5、获得错误 (31)5.4.6、数据修正和数据检查方法附录 (31)1、框架介绍1.1、关于zentaoPHP框架1.1.1、zentaoPHP框架的缘起2009年我们决定开始启动禅道项目管理软件的开发,编程语言自然选择了一直使用的PHP。
CnMISFrame框架包概要设计说明书作者:Meteorshine(mydog@,QQ:83718520)部门:CnPack开发组设计组开发人员类别:MIS系统框架包设计版本:V0.5.0.1创建:2004.12.20一、引言1、编写目的本文档描述了CnMISFrame 业务系统框架包要实现的主要功能和框架结构。
预期读者为CnPack开发组参与CnMISFrame开发的成员及对业务系统框架开发感兴趣的成员,要求具有一定的VCL知识和面向对象的业务知识。
2、背景CnPack开发的专家包已经渐渐普及,深得广大Delphi程序员的喜爱。
但是CnPack预定的其他计划仍没有多大变化,很多方面还处于起步阶段,没有进入有节奏的开发阶段,CVS库中源代码除了专家包外,其它方面的代码很少。
作为一个MIS系统的开发人员,早年我在PB上开发了多年,并利用多年的经验抽象出了一个较通用的MIS系统类库——UFC类库。
现在由于部分业务转到了Delphi上,于是我想把我在PB 方面的一些抽象思路用Delphi来实现出来,命名为CnMISFrame,计划作为CnPack的一个重要组成部分。
3、定义CnMISFrame,CnPack开发包中业务系统框架包部分,简称MIS框架包。
4、参考资料1)编写本文件用到的参考资料:《CnPack开发草案》2)阅读本文件时需要对照查阅的参考资料:CnPack专家包源代码,CnMISFrame框架包源代码。
二、总体设计1、需求规定1)功能描述CnMISFrame 业务系统框架包是一个基于一些通用的业务,抽象出来的通用MIS系统解决方案,通过一些通用对象封装了MIS系统中的整个业务流程,以此来提高开发MIS系统的工作效率。
MIS框架包以源代码形式发布,其功能定义为MIS系统通用功能集合、业务流程封装。
主要分两部分:1、基础通用功能:实现应用程序启动逻辑管理、全局对象管理、统一事务逻辑、帐套管理、异常管理、监控日志管理、数据字典管理、系统参数管理、多语言管理、提醒信息管理、自动升级管理、报表管理、权限管理等。