zentaoPHP框架手册.docx

上传人:b****6 文档编号:3620742 上传时间:2022-11-24 格式:DOCX 页数:26 大小:119.17KB
下载 相关 举报
zentaoPHP框架手册.docx_第1页
第1页 / 共26页
zentaoPHP框架手册.docx_第2页
第2页 / 共26页
zentaoPHP框架手册.docx_第3页
第3页 / 共26页
zentaoPHP框架手册.docx_第4页
第4页 / 共26页
zentaoPHP框架手册.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

zentaoPHP框架手册.docx

《zentaoPHP框架手册.docx》由会员分享,可在线阅读,更多相关《zentaoPHP框架手册.docx(26页珍藏版)》请在冰豆网上搜索。

zentaoPHP框架手册.docx

zentaoPHP框架手册

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、内置数据库访问层DAO5

1.2.5、支持跨模块之间的调用5

1.2.6、无需路由配置,即可获得简捷的URL5

1.2.7、灵活的数据验证机制6

1.2.8、配置和语言可以通过对象方式引用6

1.2.9、方便的全局变量应用6

1.2.10、所见即API6

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、简单的Helloworld!

10

3.1.1、了解框架目录结构10

3.1.2、创建hello模块11

3.1.3、创建control.php文件11

3.1.4、访问helloworld应用11

3.2、使用MVC实现的helloworld!

11

3.2.1、仅有control.php的helloworld.12

3.2.2、有model层的helloworld.12

3.2.3、带有view层的helloworld.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、router16

4.1.2、app17

4.1.3、config,lang,dbh17

4.1.4、URI,module,control,modelandview17

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。

但在开发框架的选择上,颇费了一番功夫。

09年的时候,php5.2系列的版本oop的功能已经比较强大,市面上也出现了一大批的框架。

比如cakephp,symfony,zendframework,codeignightor等等。

仔细的研究这些框架之后,最符合我们要求的是codeignightor这个框架,概念简单,文档丰富。

但遗憾的是这个框架是基于php4面向过程的语法实现的,导致它的很多实现并不是很合理。

考虑到我们后续产品的发展,我们决定自己来开发一款框架。

于是2009年3月1日,发布了第一个版本。

1.1.2、zentaophp框架的特点

zentaophp框架的定位主要是b/s架构的应用开发,它不是一款全能型的框架,主要的目的还是服务我们团队自己的产品研发。

因此和其他的框架相比,它有很强的特点:

(1)代码简单

框架的核心只有四个文件,分别为调度类router.class.php,control类control.class.php,model类model.class.php和工具类helper.class.php。

代码的实现也比较简单,有能力的开发者可以很容易在框架基础上进行扩展,增加自己的功能。

(2)性能良好

zentaoPHP框架在实现过程中,十分重视性能。

在保证功能的前提下面,尽可能的提升程序执行效率。

(3)结构清晰

使用ZenTaoPHP框架来开发应用,其目录结构简单清晰,维护起来非常的方便。

(4)开发友好

框架,首先是一个框,把你框在了里面。

所以很多框架会有很多的约定,你要怎样,你要怎样。

还有很多隐形的约定,比如你要在你的代码里面写很多的xxxx之类的东东。

我觉得一个好的框架在实现功能的前提下,应当尽量兼顾开发人员之前的开发习惯,所以zentaoPHP框架在这方面花了大量的力气:

(5)中性命名:

框架实现时,没有出现什么zentao之类的命名,完全是中性的命名:

router,control,model,config,lang。

(6)配置对象化:

配置项可以通过对象的方式来引用,$config->db->user,要比$config['db']['user']简洁顺畅的多。

(7)相对路径包含:

所有的路径都可以用相对路径来进行包含,这样可以很清晰的知道目录结构和代码之间的关系。

1.2、zentaophp框架的主要功能

zentaoPHP框架的主要功能如下:

1.2.1、单一入口模式

单一入口是现在比较流行的开发方式。

好处在于可以有一个集中的控制。

或者讲框架一个比较基本的东西也是单一入口吧。

现在ZenTaoPHP框架支持web方式和命令行方式的两种入口文件。

具体的例子大家可以查看app目录下面的demo/www/index.php和cli/call这两个文件。

1.2.2、MVC模式

ZenTaoPHP支持MVC方式的开发。

不过相比较于其他框架的多种模板实现来讲,ZenTaoPHP并没有尝试去开发一套新的模板系统,而是采用PHP作为模板语言。

这是最快的一种解决方案,而且也是最简洁的一种方案。

1.2.3、支持GET和PATH_INFO两种方式调用

支持 index.php?

m=user&f=info&id=123这种GET方式的调用,也支持/user/info/123.html这种方式的调用。

如果你能控制你的运行环境,可以使用PATH_INFO的方式,这样生成的URL地址更加简捷,而且对搜索引擎十分友好。

1.2.4、内置数据库访问层DAO

禅道框架内置了DAO数据库访问层,在PDO的基础上,提供了完整的SQL拼装功能,可以非常方便的书写SQL查询语句,获取数据。

而且我们在实现DAO的时候,花了很大的力气在兼容之前大家手写SQL的习惯,所以大家在使用禅道框架的DAO的时候,会发现很亲切,因为和手写SQL基本上是相同的。

1.2.5、支持跨模块之间的调用

在ZenTaoPHP框架中,一个模块的control或者model都可以直接调用另外一个模块的model,这样就可以将一个应用进行模块化,然后通过采用不同模块的功能,来实现比较复杂的功能。

除了model的调用之外,一个模块的control还可以fetch另外一个模块的control方法,这种一般用于一些共用的页面元素,比如打印一个搜索表单,或者打印菜单等等。

通过control之间的互相调用,实现代码的共享。

1.2.6、无需路由配置,即可获得简捷的URL

ZenTaoPHP框架提供了简洁的参数传递方式。

比如user模块有一个read方法,需要id和name两个参数,通常的PATH_INFO为user/read/id/1/name/wwccss.html,而zentaoPHP支持user/read/1/wwccss.html的形式,这样就省略了参数名的传递。

这一切,都不需要配置任何的路由,直接通过框架的功能就可以获得。

1.2.7、灵活的数据验证机制

禅道PHP框架内置了灵活的数据验证机制,可以实现对数据的修正和检查,代码极其紧凑,简洁。

1.2.8、配置和语言可以通过对象方式引用

zentaoPHP框架的配置没有用什么ini文件,也没有用什么yaml文件,也没有用php的数组,而是直接用PHP对象的形式。

这样配置文件不需要解析,就可以直接使用,而且引用起来十分的方便。

形如$config->db->host的这种方式,而不是$config['db']['host']的这种方式。

书写起来会非常的流畅!

1.2.9、方便的全局变量应用

在zentaoPHP框架中,引用GET,POST,SERVER这样的全局变量,可以通过这样的方式:

$this->get->userName,$this->post->userName,$this->server->remote_addr。

1.2.10、所见即API

在现在开放平台的潮流下面,有一个非常好的api机制是比较重要的。

在zentaoPHP框架中,每一个接口都可以成为api。

至于api的方式,是通过其访问的扩展名来加以区分。

比如如果你访问的是user/read/id/123.html,那么返回的是正常的网页。

如果访问的是user/read/id/123.json,那么返回的就是json格式的数据。

1.2.11、内置多语言支持

zentaoPHP框架支持多种语言功能,会自动根据当前用户客户端的信息来判断使用何种语言,这样可以方便大家开发多语言的应用。

1.2.12、强大的扩展机制

zentaoPHP框架实现了强大的扩展机制。

通过这套扩展机制,做定制开发可以说是轻而易举,再也不用担心维护多个分支带来的痛苦了。

1.3、zentaophp框架授权协议

zentaoPHP框架最开始的授权协议是LGPL。

LGPL协议对大家的使用还是有一些限制的,尤其是对一些商用。

所以我们做了一个决定,从2.1版本开始,彻底将zentaoPHP代码的版权捐献出来,以publicdomain协议发布!

简单来讲,任何人或者任何单位可以用ZenTaoPHP框架做任何的使用,而没有任何的限制。

包括重新发布,改名,商用,等等。

/**

*ThecontrolclassfileofzentaoPHPframework.

*

*Theauthordisclaimscopyrighttothissourcecode.Inplaceof

*alegalnotice,hereisablessing:

*

*Mayyoudogoodandnotevil.

*Mayyoufindforgivenessforyourselfandforgiveothers.

*Mayyousharefreely,nevertakingmorethanyougive.

*/

2、框架安装

2.1、zentaoPHP框架系统要求

zentaoPHP框架是基于php5版本的oop特性开发的,不兼容php4版本。

所以在您使用zentaoPHP框架之前,请确认您的环境满足下面的要求:

(1)webserver最好是apache。

因为它和php集成使用是最稳定,功能也是最齐全的一套组合;

(2)PHP最低版本是5.2版本。

(3)数据库目前只支持MySQL,版本4.x以上。

现在amp组合的安装比以前已经简单多了。

windows下面的用户可以考虑使用xammp。

linux下面的用户直接使用包管理进行安装就好了。

比如debian下面的apt,红帽下面的rpm,yum。

FreeBSD的用户可以直接使用ports安装,也是非常方便的。

2.2、zentaoPHP框架安装

2.2.1、安装apache,mysql,php的运行环境

首先要确认你的机器上面已经安装好了apache,mysql,php的运行环境。

而且符合zentaoPHP框架的系统要求。

2.2.2、获取最新的zentaoPHP框架

从下载最新的zentaoPHP框架。

目前是以zip格式提供的。

2.2.3、安装zentaoPHP框架

将下载下来的zip文件解压缩到一个目录,比如/var/www/zentaophp。

解压之后,里面有一个framework,module,lib的目录。

其中你要开发的应用程序要放在module目录下面。

2.2.4、建立demo数据库

在体验框架之前,需要先创建一个demo数据库。

可以使用phpmyadmin或者mysql的命令行来创建这个数据库。

然后到db目录,找到blog.sql文件,生成blog表。

2.2.5、生成配置文件

到config目录下面,把my.example.php复制一份,复制成my.php,修改里面的数据库的访问参数。

php

$config->installed=true;

$config->debug=true;

$config->requestType='PATH_INFO';//PATH_INFOorGET.

$config->requestFix='-';$config->webRoot='/';

$config->db->host='localhost';

$config->db->port='3306';

$config->db->name='demo';

$config->db->user='root';

$config->db->password='';

主要要修改host,port,name,user,password这些参数。

2.2.6、访问demo应用

通过浏览器访问:

http:

//localhost/zentaophp/,就可以看到框架运行的欢迎界面了。

备注:

访问路径根据你实际的部署目录来加以修改。

localhost也根据需要换成实际的ip地址或者域名。

3、快速入门

3.1、简单的Helloworld!

安装好框架之后,让我们来用框架来实现helloworld!

我们以框架代码部署在/var/www/zentaophp为例:

3.1.1、了解框架目录结构

最新版本的框架对目录结构进行了简化。

解压缩zentaoPHP框架之后,你可以看到这个目录下面有如下文件:

其中config目录存储配置文件。

db目录存储的是demo演示所用的blog表的定义。

favicon.ico是网站小图标文件。

framework则是框架的核心目录,里面包含了router,control,model和helper的定义文件。

index.php是入口程序,所有的请求都经由index.php来进行转发。

js目录用来存放js脚本文件。

lib目录用来存放常用的类文件。

module则是模块目录,所有的功能模块都放在这个目录下面。

theme则用来放样式表和图片文件。

3.1.2、创建hello模块

下面我们在module目录创建hello模块。

cdmodule

mkdirhello

3.1.3、创建control.php文件

在hello目录下面生成一个control.php文件,里面写入下面的代码:

php

classhelloextendscontrol

{

publicfunctionworld()

{

echo'Hello,world!

';

}

}

?

>

3.1.4、访问helloworld应用

这时用浏览器访问:

http:

//localhost/zentaophp/hello-world,就可以看到hellworld了。

如果config/my.php配置的访问方式是GET方式,访问路径是http:

//localhost/zentaophp/?

m=hello&f=world.

3.2、使用MVC实现的helloworld!

在上一章中,我们实现了最简单的Helloworld输出,在这一章里面,我们将向你展示如何利用mvc的结构来实现Helloworld.

3.2.1、仅有control.php的helloworld.

在上一个章节中,我们所实现的代码,实际上是在control里面直接输出了Helloworld.

php

classhelloextendscontrol

{

publicfunctionworld()

{

echo'Helloworld';

}

}

3.2.2、有model层的helloworld.

现在稍微复杂一点,引入model。

我们来创建model文件:

model.php。

 

php

classhelloModelextendsmodel

{

  publicfunctionworld()

  {

    return'Helloworld!

';

  }

}

现在control需要做一些改动:

 

publicfunctionworld()

{

echo$this->hello->world();

}

框架会自动加载当前模块所对应的model类,并生成model对象,然后在control就可以通过$this->hello(也就是模块名)这样的形式来引用model中的各个方法了。

现在再来访问下http:

//localhost/zentaophp/hello-world,是不是同样可以显示出helloworld!

3.2.3、带有view层的helloworld.

zentaoPHP框架对模板的命名约定如下:

(1)视图文件都存放在各个模块的view目录下面。

(2)视图文件的命名规则是方法名+模板名+.php。

比如我们要访问的index.html,那么对应的模板文件是index.html.php。

首先我们来修改下control文件。

 

publicfunctionworld()

{

$this->view->helloworld=$this->hello->world();

$this->display();

}

 然后我们来创建view/world.html.php,内容如下

php

echo$helloworld;

?

>

control将model返回的变量赋值到视图文件。

然后调用display方法展示模板文件就可以了。

ok,这时再重新刷新访问,是不是可以呢?

走到这一步,恭喜你,你已经接触到了ZenTaoPHP框架最基础,最核心的东西了。

3.3、部署框架自带的简单的blog示例

zentaoPHP框架中自带了一个简单的blog示例,下面让我们来部署这个示例应用。

如果安装的时候已经初始化了数据库,跳过这一步。

3.3.1、创建数据库

在db目录下面,有一个blog.sql。

这是一个非常简单的表结构,使用phpmyadmin,或者是命令行的mysql工具,创建一个数据库,叫做blog,然后把这个sql文件里面的建表工具导入。

$>mysql-uroot-p

$>createdatabaseblog;

3.3.2、创建应用的配置文件

在我们的代码中,已经内置了一个config.php文件,可以直接修改这个配置文件,但是我们建议的方式是创建一个my.php,将当前应用相关的配置在这个my.php文件中重新定义。

这样可以解决代码冲突的问题。

将config/my.example.php文件,复制为my.php,然后修改其中的数据库访问参数。

$config->debug=true;//开发环境,可以将debug打开。

$config->requestType='PATH_INFO';//如果apache打开了mod_rewrite,可以用这个选项。

如果不行,则改用GET

$config->requestFix='-';//路径分隔符。

$config->webRoot='/zentaophp/';//当前应用的web访问路径。

$config->db->port='3306';

$config->db->name='blog';

$config->db->user='root';

$config->db->password='';

3.3.3、访问blog应用

http:

//localhost/zentaophp/blog/,即可看到界面了。

4、框架基础

4.1、zentaoPHP框架里面的基本概念

zentaoPHP框架的所有请求都是通过index.php来进行的。

它的基本原理是通过设置apache或者其他webserver,将所有的请求都转交给index.php。

index.php加载框架文件,初始化应用,然后分析请求,得到请求对应对模块名、方法和参数,然后加载相应模块的control方法,model方法,最后渲染模板,展示给用户。

基本的模型如下:

4.1.1、router

router在zentaoPHP框架中通常表现为index.php。

通过apache的配置文件,将某一个域名下面所有的请求解析到这个index.php文件。

然后由这个index.php来负责调度。

4.1.2、app

router会根据当前的请求来实例化一个具体的应用。

比如demo应用的index.php代码如下:

include'./framework/router.class.php';

include'./framework/control.class.php';

include'./framework/model.class.php';

include'./framework/helper.class.php';

$app=router:

:

createApp('demo');

4.1.3、conf

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1