php开发规范
Ⅰ psr 什么意思
简单来说psr就是规范了php开发的编码风格,进行统一规范!
PSR 是 PHP Standard Recommendations 的简写,由PHP FIG组织制定的 PHP 规范,是 PHP 开发的实践标准。
PHP FIG,FIG 是 Framework Interoperability Group(框架可互用性小组)的缩写,由几位开源框架的开发者成立于 2009 年,从那开始也选取了很多其他成员进来(包括但不限于Laravel, Joomla, Drupal, Composer, Phalcon, Slim, Symfony, Zend Framework等),虽然不是“官方”组织,但也代表了大部分的 PHP 社区。
项目的目的在于:通过框架作者或者框架的代表之间讨论,以最低程度的限制,制定一个协作标准,各个框架遵循统一的编码规范,避免各家自行发展的风格阻碍了 PHP 的发展,解决这个程序设计师由来已久的困扰。
目前已表决通过了 6 套标准,已经得到大部分 PHP 框架的支持和认可。
Ⅱ php接口开发教程
PHP与大多数面向对象编程语言一样,不支持多重继承.也就是说每个类只能继承一个父类.为了解决这个问题,PHP引入了接口,接口的思想是指定了一个实现了该接口的类必须实现的一系列方法.接口是一种特殊的抽象类,抽象类又是一种特殊的类,所以接口也是一种特殊的类,为什么说接口是一种特殊的抽象类呢?如果一个抽象类里面的所有的方法都是抽象方法,那么我们就换一种声明方法使用“接口“;也就是说接口里面所有的方法必须都是声明为抽象方法,另外接口里面不能声明变量(但可声明常量constant),而且接口里面所有的成员都是public权限的。所以子类在实现的时候也一定要使用public权限实限。
声明一个类的时候我们使用的关键字是”class”,而接口一种特殊的类,使用的关键字是“interface”;
类的定义: class 类名{ … } ,接口的声明:interface 接口名{ …}
代码
代码
<?php
//定义一个接口使用interface关键字,“One”为接口名称
interface One
{
//定义一个常量
const constant = 'constant value';
//定义了一个抽象方法”fun1”
public function fun1();
//定义了抽象方法”fun2”
public function fun2();
}
?>
上例中定义了一个接口”one”,里面声明了两个抽象方法“fun1”和”fun2”,因为接口里面所有的方法都是抽象方法,所以在声明抽象方法的时候就不用像抽象类那样使用”abstract”这个关键字了,默认的已经加上这个关键字,另外在接口里边的”public”这个访问权限也可以去掉,因为默认就是public的,因为接口里所有成员都要是公有的,所在对于接口里面的成员我们就不能使用“private”的和”protected”的权限了,都要用public或是默认的。另外在接口里面我们也声明了一个常量“constant“, 因为在接口里面不能用变量成员,所以我们要使用const这个关键字声明。
因为接口是一种特殊的抽象类,里面所有的方法都是抽象方法,所以接口也不能产生实例对象; 它也做为一种规范,所有抽象方法需要子类去实现。
我们可以使用”extends”关键字让一个接口去继承另一个接口:
<?php
//使用”extends”继承另外一个接口
interface Two extends One
{
function fun3();
function fun4();
}
?>
而我们定义一接口的子类去实现接口中全部抽象方法使用的关键字是”implements”,而不是我们前面所说的”extends”;
代码
<?php
//使用“implements”这个关键字去实现接口中的抽象方法 接口和类之间
class Three implements One
{
function fun1()
{
…
}
function fun2()
{
…
}
}
//实现了全部方法,我们去可以使用子类去实例化对象了
$three=new Three();
?>
我们也可以使用抽象类,去实现接口中的部分抽象方法,但要想实例化对象,这个抽象类还要有子类把它所有的抽象方法都实现才行;
在前面我们说过,PHP是单继承的,一个类只能有一父类,但是一个类可以实现多个接口,就相当于一个类要遵守多个规范,就像我们不仅要遵守国家的法律,如果是在学校的话,还要遵守学校的校规一样;
<?php
//使用implements实现多个接口
class Four implemtns 接口一, 接口二, ….
{
//必须把所有接口中的方法都要实现才可以实例化对象。
}
?>
PHP中不仅一个类可以实现多个接口,也可以在继承一个类的同时实现多个接口, 一定要先继承类再去实现接口;
<?php
//使用extends继承一个类,使用implements实现多个接口
class Four extends 类名一 implemtns 接口一, 接口二, ….
{
//所有接口中的方法都要实现才可以实例化对象
………
}
?>
Ⅲ 有什么好的php的书!!!
PHP 5与Mysql 5 Web 开发技术详解
本书是目前中文版本第一个真正介绍PHP5及MySQL5新增语法与功能的权威宝典!
本书本着精、全、要三宗旨,从理论中延伸,从实践中深入,详实并完善描述了PHP5的开发特性与MySQL5数据库,如PHP数组与表单处理、PHP5面向对象开发、Ajax、CLI、字符流处理、加密技术、图片处理及PHP代码优化,以及存储过程,游标、事务等进阶内容。书中第二部分的开发实例是作者开发的原创作品,该部分内容不仅会令读者的开发水平有所增进,而且可在案例的基础上进行二次开发,做出符合自己业务的网站系统。
本书既可作为初学者或刚刚从其他语言转做PHP开发的程序员和软件工程师的学习参考书,也可作为掌握PHP5的进阶应用及高级知识的案上学习指南。
目录
第一篇PHP5基础知识
第1章PHP5概述
第2章PHP5开发基础
第3章正则表达式
第4章PHP数组
第二篇PHP5核心应用与规范
第5章表单——处理用户输入
第6章PHP加密技术
第7章PHP国际化与本地化
第8章PHP开发规范
第9章PHP5面向对象开发
第10章PHP会话管理
第11章PHP输入输出缓冲
第12章文件系统与字符流
第三篇MySQL5与PHP5接口
第13章Wed数据库设计
第14章PHP与MySQL数据库接口
第15章MySQL5数据库数据操纵
第16章PHP与MySQL数据库接口
第17章PHP数据库抽象
第四篇PHP5进阶与技巧
第18章Smrty与模板技术
第19章PHP和Ajax技术
第20章使用PHP编写Shell
第21章PHP网络开发
第22章PHP文件上传
第23章图片与媒体处理
第24章XML与RSS
第25章Wed服务与SOAP
第26章PHP与WAP技术
第五篇PHP5调试、升级与优化
第27章错误与异常处理
第28章升级到PHP5
第29章PHP优化技巧
第2部分实战PHP5
第30章实例开发:会员注册系统
第31章实例开发:圈子系统开发
第32章实例开发:爱问系统
第33章实例开发:多用户博客系统
附录APHP在线资源
附录BZend Core安装
附录CPHP扩展开发
附录DMySQL字符集与整理
附录E代码页与Charset对照表
附录Fphp.ini配置详解
附录GHTTP返回代码表(RFC2068)
官方书评:
作者功力深厚,写这本书也很专心细致,内容很多,写的非常详细。涉及到PHP开发方方面面的问题,既有总体把握,又有实现细节,有许多针对日常会遇到的问题、案例,提供可直接应用上的解决方案,又有深入的、循序渐进的描述。解析了PHP5以及MySQL5的技术细节,是一本初学者入门与熟练掌握php,中级php开发者进阶的一本好书籍。兼顾到了“工程师”和“程序员”两种读者。而且能在phpchina论坛热心地与大家交流,及时解答PHPer的问题,实为难得。当然,任何事情都不是十全十美,这本书同样也有一些不足的地方,就是书中一些细节的东西把握不够好,有不少的错漏,不过瑕不掩瑜。
Ⅳ 小白如何学习PHP
如何建立PHP网站?做网站的步骤是什么?本文来介绍下网站建设流程与步骤,该文遵循部分PHP开发规范。 不管使用PHP建立个人站还是企业站,网站建设的流程规范大体是一致的,涉及域名注册(详见本站域名知识栏目),服务器(空间)选择,了解用户需求,网站定位,PHP建站程序的选择与开发等流程。 网站建设流程之域名注册 域名注册有一些基本原则,比如域名尽量短小,容易记忆,域名中包括网站关键字等,对于企业网站可以以公司名称或者销售的核心产品作为域名等,不过我觉得这些并不是最重要的,你可以把它理解为SEO优化技巧,最重要的还是做好网站内容,提供有价值的服务。 网站建设流程之服务器(空间)的选择 对于服务器或者空间的选择首先是必须稳定,这不但关系到访问者的感受,也影响到搜索引擎蜘蛛的感受。对于个人自己建站的朋友或者是草根创业团队,初期还是推荐使用空间,这样比较节省开支,切勿盲目选择服务器,不但开销大,维护成本也是不小的。 网站建设流程之网站定位 在完成了域名注册,空间选择之后,在真正进行网站开发之前必须对自身网站有一个合理的定位,需要思考网站主要干什么?网站针对的目标用户群是谁?网站可以为目标用户提供什么?相比其他网站,网站的核心竞争力是什么?网站发展的中长期目标是什么?再真正搞清楚这些问题之后再入手才是上策,能避免少走很多弯路。 网站建设流程之SEO规划与实施 在网站建设之前需要做好SEO规划和实施的方案,比如网站关键字分析,挑选核心关键字进行网站标题的优化以及URL规划、网站框架结构设计等 网站建设流程之网站开发 在进行网站开发之前,肯定是选择开发语言,对于个人或者中小企业建站,建议选择使用PHP来进行网站建设,因为PHP作为开源语言,提供了丰富的PHP开源系统,你只要根据自己的需要挑选合适的一款,适当进行一些二次开发就可以了。 特别提醒:对于选用服务器的,在进行PHP网站开发之前,必须要安装配置PHP环境(如果是购买的空间一般人家服务商都配置好了),有些PHP开源系统自带PHP安装程序,能充分发挥其所有优势,而对于手工搭建PHP环境的,建议根据选择的PHP开源系统的特点来搭建PHP运行环境;对于选用空间的,这安装配置PHP就省略了,但是事先你必须要了解PHP空间本身自带哪些功能,不支持哪些功能,比如有的空间就不支持ApacheMod_rewrite实现伪静态。 在经过上述这些网站建设的流程之后,大体上一个网站就建设起来了,这些是个人自己建站的基础流程和经验,其实网站建设的流程不止这些,网站建设是一个系统工程,同时也涉及到网站推广、网站维护的流程等,需要每个人不断总结和学习。
Ⅳ psr是什么意思
1、PSR是plan of speed reading的缩写,就是快速阅读计划,快速阅读计划在中国称做全脑速读。
2、PSR,Point of safety return,中文全称“安全折返点”,往南极的飞机到这个点,汽油刚好用掉了一半,这时回头还可以安全降落,一旦越过这个点,就没有回头的机会,只能一直往南极飞去。
3、PSR即Periodic Safety Review,对在运核电站现状的定期审查,是国家核安全局对在运核电站现状的一个定期审查,其可通过法规HAD102进行。
4、化学反应,全称Perfectly Stirred Reactor,中文表述为完全搅拌的全混流反应器,该反应器是一个在控制容积内达到完全混合的理想反应器。
5、原边反馈(PSR)的AC/DC控制技术是最近10年间发展起来的新型AC/DC控制技术,与传统的副边反馈的光耦加431的结构相比,其最大的优势在于省去了这两个芯片以及与之配合工作的一组元器件,这样就节省了系统板上的空间,降低了成本并且提高了系统的可靠性。
6、PSR是PHP Standard Recommendations的简写,由PHP FIG组织制定的PHP规范,是PHP开发的实践标准。
Ⅵ php程序员,岗位职责有哪些
php程序员,岗位职责有哪些?
PHP程序员岗位工作职责:
1、负责帮助技术主管开展技术性测评,bug解决,代码开发;
PHP程序员发展前景:
程序员-系统数据分析员-系统架构师-技术经理-CTO;
程序员-新项目小组长-工程项目经理-项目负责人-CTO;
程序员-工业设计师-产品运营-CTO。
以上就是我的详细介绍,希望看完对大家有所帮助。大家还有别的意见,可以在下方留言区一起讨论。
Ⅶ 今天说一下php多人开发大项目时如何做到代码规范化
模块独立开发。写好接口,供他人消费。 不是自己的模块不要插手
Ⅷ 新手入门php要学哪些内容呢
1、WEB基础
要知道网站是什么东西,所使用的协议是怎么工作的,怎样把网站放在服务器上。
2、HTMLphp
HTMLphp是嵌入在HTML的语言,所以HTML是必须的。可以用HTML写出简单的静态的页面,放在本机的服务器上看看效果。
3、DIV+CSS
能够用DIV+CSS布局做出漂亮的精美静态网页。
4、php基础
学习php基础,如php语法,php变量,php流程控制,php函数,php数组应用,php字符串处理,php常用模块,php文件处理,php动态图像处理,会话控制等,就可以把静态页面变成动态的。这个阶段比较枯燥,主要是记忆,必须能够熟练应用。
5、MySQL
网站往往包含大量的信息,这些信息不可能都放在程序(php文件)中,需要MySQL来储存大量的数据信息。
6、Javascript
掌握了以上内容就可以搭建一个php基础网站,但是还需要靠Javascript来完成网站的特效和信息验证等。
7、php高级
作为一个可以上线运营的全功能网站,还要继续学习php高级知识,如php面向对象,数据抽象层PDO,MEMCACHE,高级SESSION,php的设计模式,MVC,smarty模板,主流框架的解读等内容,这个阶段需要多读优质的开源代码,多写代码。
8、linux
正如大家所熟知的php较佳的搭配是LAMP(Linux+Apache+MySQL+Php)或LNMP(Linux+Nginx+MySQL+Php),那么显然在Linux系统下的php网站比在Windows下兼容性好,基于此我们需要知道在Linux下搭建php环境的方法以及Linux的日常管理命令,以便我们网站的日常管理运营。
9、项目相关
这个阶段首先需要了解项目开发流程,需求分析,程序设计说明书,数据库设计说明书,编码规范,大流量/大数据架构,MYSQL深度优化,全文索引等内容。
目前为止学到这个阶段,已经可以算是php小牛了,要继续向php大牛进发就需要参与开发大型网站项目,以此练手。北大青鸟http://www.kmbdqn.cn/认为参与大项目开发,实践为主。通过这阶段的学习就可以自主做企业网站、论坛、网页游戏等。
Ⅸ 如何学好PHP知识
如何学好PHP知识
PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。那么如何学好PHP知识?以下仅供参考!
具体方法如下:
一,学习Php,首先得熟悉一样相关html技术并掌握基本的css样式,这样就能了解页面的构成为学习Php打下基础,W3C学校里有丰富的编程教程,还支持边写边练。
二,学习完html基础后,接下来就是开始正式接触php了,但这之前还有一部,那就是配置Php开发环境Php开发环境的配置有很多种方法,不过对于初学者来说大都是采用集成环境wamp啊,phpnow,xampp,apmser直接下载,安装,再进行一下相关的配置即可环境配置好了,可以边写代码变了解PHP的基本语法运算符啊,逻辑控制啊,数组的操作,字符的操作数据库连接,以及Mysql查询。
三,Php基础需要再不断的练习中稳固,面向对象编程,对于程序来说是非常重要的了解面向对象编程的意义,类的创建、类的多态、类的集成、类的封装熟悉MVC架构,(模型model,视图view,控制器controller)对于开发网站来说是很有必要性的,这确保网站文件放置位置的规范,后期维护网站,找起来也是比较方便。
四,xml和mysql的学习也是必须的Mysql的增删改查(CURD)操作必须熟烂于心熟悉mysql不同数据库引擎的差别,以便于根据自身网站需求来建。
五,熟悉cookie和session机制,有利于你更好的把握php会话的`处理。
六,lamp是指在linux环境下搭建的Php开发环境(较wamp环境下,处理快),故而熟悉Linux也是非常很重要的。熟悉smarty能够帮你快速熟悉使用smarty开发的框架。。
七,php的知识掌握的差不多,接下来可以接触一些框架CI框架,YII框架,JOOMLA框架ECSHOP框架,ECMALL框架,THINKPHP框架框架能够帮助你快速的建站。
八,最后,告诉大家如何快速提升自己的php技术。一、在技术性论坛注册一个账号,参与讨论,查看别人发的代码二、加入技术群,关注里面的讨论,多看看别人的程序设计思路,用的方法三、多实际操作,不懂就得问。
;Ⅹ php什么是PEAR
借着引入PEAR,php的程式开发者除了可以大幅缩减撰写程式码的工作与时间外,还可以用很简单的方式得到许多强大的动态网页功能,我将会列举许多的实例,让大家看了后,一定会啪掌叫好,并深深的迷上了PEAR。此外,程式码很容易维护,安全性高也是PEAR另2个很吸引人的优点,PAER程式库宛如模组,可以轻易的抽换与更新,完全不会影响到其他的程式码。
我们是从最基本的观念介绍起,包括PEAR这个专有名词的含意? 在那地方取得PEAR套件(package)? 如何使用PEAR套件等?
从第2章起,我们首先介绍PEAR的起源、历史与特色,让大家对PEAR有个基本的认识。
第3章我们将会介绍PEAR程式库套件的安装与管理方法,这一章是非常重要的,在使用PEAR之前,必需先把这些基本功夫学好,虽然有点复杂,但是学会之后受用无穷,让您的PHP程式开发效率倍增,功能随着递升。
第4章,是由简单的范例介绍如何引用PEAR程式库来开发PHP程序,让我们了解PEAR的一般使用方法,也为程式库的使用建立一个基本的操作流程。
在第五章我们将介绍几个用法简单又功能强大的程式库套件的范例,让大家可以在动态网页上快速建立一些您以前无法想象而又非常酷的功能,让您的程式开发功力立刻提高。例如:
◆ 让网页可以提供天气预报的功能,增加网页的附加价值。
◆ 用很简单的方法在服务器上建立网页的快取(Cache),加快网页的开启速度。
◆ 在动态网页上搜寻某台主机有提供那些PORT号的服务。
◆ 在动态网页上查询某个网域名称(DNS),找出相对应的IP。
◆ 动态产生HTML表格。
◆ 快速建立“客户回函”系统,让网页浏览者可以从网页上寄信给网站管理员。
◆ 让网页可以记录网页浏览者的行为,也就是做Log。
第6章到第13章,我们会很详细地介绍一些很重要,很常用,但较为复杂的程式库套件的使用方法,这几章都是以套件为介绍的主轴,也就是说,一章只介绍一个套件,务求将这几个重要套件中较为重要功能,详细地介绍给大家。
这些套件(packages)包括:资料库连线套件、表单制作套件、身份认证套件、档案上传套件、分页套件等等。
最后,附录A会对PEAR的网站做详细的介绍,当您进入PEAR的世界后,您一定会经常来这个网站寻找资料。知道如何利用网站,对于那些PEAR的PHP开发者而言,是十分重要的。附录B则会对PHP的物件导向程式设计做简单的介绍。
喜欢和适合使用PEAR者分类如下:
◆ php爱好者,那一定要用PEAR,因为它绝对棒极了。
◆ PHP的专业程式设计员。您需要的是程式码的安全性,可重复性,以及良好的工作效率,PEAR绝对是必备的。
◆ PHP的程式玩家,想要开发更有趣的,功能更强的应用程式,却不想被撰写PHP程式的一些烦恼绑缠,PEAR绝对可以满足您的要求。
◆ 自己撰写PHP程式,却不喜欢每次都要从零开始,一字一字地敲打程式码,PEAR可以提高您的工作效率。
◆ 您想要学习功能性强,安全性高的PHP,当学会了PHP的基本语法后,可以试着使用PEAR。
◆ 您需要量身定造的PHP应用程式,换言之,您不喜欢像XOOPS之类的套装应用程式,来试试PEAR吧。
◆ 您需要容易维护的PHP应用程式,不想日后常修改程式码,或因为PHP的改版而将整个程式重新设计。
◆ 您希望您的PHP程式可以物件导向化,方便程式的抽换与模组化。
◆ 您希望您的PHP功力更上一层楼,想要学习更多的PHP相关知识,透过PEAR的使用或观看PEAR的原始码,不失为一个好的学习途径。
PEAR就是专门为有以上这些需求的人所写的.。
使用PEAR就像建一座房子一样。它是让您用预制件的方式,建一栋自己设计兼施工的大房子,但却不需要自己搅拌水泥,自己准备沙土、石头,自己烧磁砖.自己做铝门窗,自己做木工装饰等等...。
PEAR就像是已经针对您的需求所订制好并准备好的预制件,您只需要运用创意将他们组合起来就可以了。
我门在使用PEAR来编写PHP程式时,必需有一个先决条件,就是必需对PHP的相关知识有一定的认识。
若您不知道甚么是PHP,什么是Apache、Mysql,或者您虽然知道,却还不会PHP的基本语法,那么,本文章目前并不适合您。建议您快去买些PHP、Apach、Mysql的入门书籍,详加研读后,才来看本文章。
大家并不一定要是PHP高手,但一定需要具备看懂基本PHP程序码的能力。无论如何,首先对PHP的热爱才是阅读本书最基本的先决条件。
第二章
PHP有许多的规范与语法,我们不做介绍,请大家有空去阅读有关PHP的书籍,我们重点介绍的是PHP发展到4.0版以后。加入了物件导向(Object-Oriented Programming Language)的功能,虽然还无法像了Java一样做到完全的物件导向,但比起前版本PHP3.0已经是一大进步,也对PHP的程序开发者提供了更强大与更方便的开发能力。
PHP 5.0版以上的版本,已经转变成为彻底的物件导向化,提供了更多完全物件导向功能。我们所介绍的PEAR程式库对PHP 4.3.0以上的版本是完全的支援。这一点请大家放心。
为了大多数人着想,也考虑到PHP向下的相容性,本书的内容与范例都可以在PHP 4.3.0版以上的环境中执行,因为PEAR完全支援PHP 4.3.0以上的版本,小于PHP 4.3.0版的环境,PEAR大部分也是支援的,只有小部分不支援。
什么是PHP的物件导向? 物件导向的语法在传统的PHP程式中较少看到,但若您了解JAVA这种程式语言的话,您应该可以知道什么足物件导向,我会在附录B有针对物件导向做简单的说明。
另外,我要强调的是:PHP除了基本语法外,内建的函式就有超过上千个,横跨上百种类别,包括文字类函式、数字类函式、资料库类、图形类等等,功能相当强大,令人咤舌。但相对于程式开发者,如何善用这些函式,配合PHP的语法撰写有效又好管理的程式码,将会是一大挑战。
在今天,有PEAR这个由全世界众多顶尖的PHP高手所共同生产的智慧结晶,可以让我们轻松又有效率地撰写程式码,并克服许多撰写上的困难。以武侠界的例子来说,用PEAR撰写PHP就宛如数百位武林高手灌注他们的功力给程式开发者。让程式开发者不用从最基本的练功,扎马步练起,借用他们的功力就可以很轻松的让功力倍增,效率倍增。
说了半天,到底什么是PEAR?下一个单元笔者就来做个介绍。
PEAR这个字单纯就字面上而言意思是“梨子”。
一颗梨子。网站的网址为http://pear.php.net
PEAR网站的logo中可以看到例子。
PEAR的开始是从1999年11月2l日。有一位名叫Stig S.Bakken的先生,这位仁兄发起了一个专案,并号召许多的PHP高手来共同投入,他首先为这个专案建立了一些程式码的基础规则,希望PHP的开发者加入这个专案时所撰写的PHP程式码都需要遵守这些规则。
这个专案名称就是PEAR,其实是PHP Extension and Application Repository的缩写,意即“PHP的延续与应用程式库”,简单的说,PEAR其实是一个PHP的程式库。
Bakken先生建立的程式码基础如下,我只概略说明一下,并不详谈细节的部分:
◆ 如果开发者要提供PHP程式库,程式的结构必须物件化。
◆ 程式的缩排要遵循一定的格式
◆ 程式中类别的命名也要遵循一定的格式
◆ 程式码的注解要有一定的格式
◆ 档案命名要有一定的格式
◆ 程式库撰写完成后要包装成套件,而套件的包装与安装方式,也有一定的格式。
该专案欢迎所有的PHP开发者来共同开发PHP程式库,只要他们愿意遵守上述的程式码基础规则。Bakken先生并组织了一组团队作为这个专案的控制主体,负责审核所有参与专案的开发者所提供的程式库,若通过审核,就将程式库分类并放入网站中供其他开发者下载使用,另外,这个团体也负责维护网站的维护与更新。
有些人可能会很好奇,为什么有人会愿意免费撰写程式库让别人来使用呀? 这就是开放原码世界的精神一互助、共享。试想,若每个开发者针对自己专精的部分开发程式库给其他人使用,同时也享用别的开发者所释出的程式库,是不是可以达到互助的目的,让每一个开发者共享所有的开发者的成果.不必所有的程式码都要自己撰写。
更棒的是,这些程式库是免费开放给全世界的人使用的,不只参与程式库开发的开发者可以享用(这种作法与Java或perl提供函式库的作法是一样的)。
因此,全世界所有的PHP开发者可以省去许多撰写程式码的时间,又因为使用程式库的开发者可以回报程式库的缺失给原开发者,原开发者也因此会不断的修正这些程式库,所以程式码相对安全。另外,程式库开发者也会随着时代演进,加入新的功能到程式库中,让程式库的使用者可以与时俱进。
详细情况可参阅PEAR的网站中所提到关于开发PEAR的目的说明:http://pear.php.net/manual/en/about-pear.php。我建议您有时间慢慢地看吧,继续将本文章看下去,您就会慢慢了解PEAR的神奇之处了。
我在文章的最后有一章附录:PEAR网站的介绍,大家可以先参考一下。
如果您还不太了解我介绍所谓“程式库”的意思,没关系,下一节就会透过实际的例子加以说明。
2-3 所有套件简介
▓ 程式库VS套件
介绍所有套件之前,我们必须厘清两个名词,以免读者混淆了,一个就是“程式库”,另外一个就是“套件”。
假如我是是一个PHP的开发者,发展了一个可以处理所有资料库存取“程式库”,并想将这个程式库加入PEAR分享给全世界使用。当我撰写完理资料库的程式库后,我必须按照PEAR的规定,将程式库压缩成一个“件”档,放在PEAR网站供所有人下载,也由于遵循PEAR的规定来压缩档案,这个套件就可以用PEAR的套件管理指令来安装或管理,这对PEAR使用者而言是相当便利的,关于套件管理指令,我会在下一章做完整的说明经过上述的说明,相信读者应该了解何谓“程式库”、何谓“套件”?其实,简单的说,把程式库包装好就变成了套件。
▓ 套件与分类
PEAR截至目前为止释出的套件已高达三百多个,共分为35大类,而且不断增加中。大家可以想象全世界的顶尖PHP开发者的结合,是一股多大的团结力量。下图是网站中套件的分类:
PEAR因为释出的套件太多了,为了管理上的方便所以依套件的功能将套件做分类,同一类的套件在效果上都有相关性,但提供的功能却不尽相同小接下来,我将所有的分类用表格的方式做一个简单的介绍,让大家多了解一下PEAR套件可以提供哪些功能。
这麼多的分类,每一类都会依功能的不同发展出不同的套件。以第一个认证类为例,若您到网站去看,会发现目前该类中共有8个套件
这8个套件都是与身份认证有相关的套件,如果您想要网页具有身份认证功能,例如,可以让网页浏览者注册、输入帐号密码、判别身份、给予权限等等。就会需要用到这些套件。
我再补充一点:有些套件已发展成熟,开发者会将它称为稳定(stable)版,但若程式库尚在发展中,但也已经可以使用,开发者将它释出,通常会称为测试版(alpha or beta)版。网站也会记录套件的开发者与维护者的姓名,有时候一个套件是由许多人共同开发而成的。
这些套件的讯息都可在PEAR的网站中找到,我在附录〈PEAR网站的介绍〉会介绍如何使用PEAR网站。
2-4 使用PEAR程式库的简单范例
在这一节中,我用l个简单的范例来说明程式库的使用。
假设您想要制作一个网页,并且希望知道网页执行时所耗用的时间,则可以借用PEAR所释出的名为Benchmark的程式库。这个程式库开发出来的目的就是用来计算网页的执行时间。
首先,先将Benchmark程式库套件安装好(安装方法请参考下一章)。接着我们就可以开始撰写网页了,例如:我们建立了一个名为show.php的网页。
基于说明上的方便,我在每一行程式前面加上行号,大家实际上撰写程式时是不用加上行号的。
第1行与第2行的程式码首先引用Benchmark套件中的Timer.php网页,这个网页内含计算纲页执行时间的程式库。include_once可以将某一个外部的网页放到这个纲页来,我称这个动作叫做“引用”, 本例相当于执行了Timer.php与show.php两个网页。
第3行,用new关键字建立一个Benchmark_Timer物件,并将该物件放入名为$timer的变数中。接着使用细$timer物件的start( )方法启动时钟,然后加上我自己的程式码,此例中是一行简单的程式。
接着就是要结束时钟的计时,计算网页执行所花费的时间并将它显示出来。第8行先用$timer物件的stop( )方法来停止时钟,并用第9行$timer物件的timeElapsed( )方法计算时钟从启动到停止中间的时间差,并将计算结果放入$totaltime变数中。
最后用echo函式显示时间差在网页上。
由结果可清楚看到show.php网页从开始执行到执行完毕总共花了0.00013613700866699秒,以后可以借由观察这个数字来判断系统效能,或做为程式码改进的参考。如何,执行时间的计算是不是方便、快速又神奇呢!
如果您需要在其他网页上也可以有计算网页的执行时间的功能,只要用上述方式套用在其他PHP网页上就可以了。
事实上,其他套件的使用方式也跟这个套件的使用方式大同小异.差别只是在每个套件所提供的类别、方法以及使用的参数各有不同而已。
套件虽然好用,但相信读者还是有许多的疑惑? 例如:
1. Benchmark程式库套件是怎么来的?要有哪些前置工作才可以使用它?
2. 我是如何知道使用Benchmark套件的方法?
第1个问题牵涉到如何安装PEAR套件,以及安装后套件的管理、升级、删除等问题,我会在第3章加以介绍。第2个问题,笔者会在第4章针对如何使用套件、如何得到套件的资讯等做一个详细的说明。
2-5 为何要用PEAR
为何要使用PEAR? 我根据自己的心得,归纳出以下几点:
1. 省时省力:许多程式码都被撰写在程式库中,开发者只需引用含程式库的PHP档,就可以拥有程式库所提供的功能,省去自行撰写的时间与精力。
2. 安全:由于这些程式库套件都将原始码公开,使用者若发现bug,可以立即向套件的开发者反映,开发者通常也会立即加以修正,让程式库的错误减到最小。
3. 容易维护:自行撰写的程式码与PEAR程式库的程式码分开,若PEAR套件因为有新功能被开发或修正错误而释出新版本,只需更新套件即可,完全不会动到自行撰写的程式码。
4. 功能强大:PEAR套件所提供的功能非常之多,除了一般常用功能如:资料库的连结、设定档的处理、身份的认证、以及表单的处理。另外,较为进阶的功能,例如像网路邮局、网路管理、动态方式产生图形、RSS、Wiki,或者像phpBB的BBCode解析等等都可简单做到。
5. 让网页的程式开发与版面设计分开:PEAR提供许多样板的程式库,可让程式开发与版面设计分开,方便于程式开发者与网页设计者分工合作。
6. 对学习PHP者是一套绝佳的学习范例:程式库的注解说明十分详细,程式码的撰写,具有一定的规则与格式,而且完全物质化,让开发者容易看懂并学习。有些套件还内附教学文件与范例挡,最重要的是:你不用花半毛钱就可得到,我们应该感谢套件的作者们,他们为我们付出了无私的贡献。
2-6 为什么要建立PEAR社团
是什么原因促使全世界的PHP开发者大团结,共同开发出PEAR这个程式宝库呢? 我就认为有以下几个原因:
1.遭受其他竞争者的强大竞争:这一点第1章已经说明过了。
2.PHP的物质化:从PHP4加入物质导向的功能后,PHP5更是进一步物质化。除了要与ASP.NET、JSP一拼外,就是方便于程式的模组化,让程式库的开发可以进行,有了物质化的功能,程式库才可以与开发者自行撰写的程式码切割。
3.开发者的共同需求:如果每一次开发PHP程式,都要从无到有完全自己来,虽然可以锻鍊程式功力,但却没有效率,也不甚经济。若一些常用的功能可以用程式库的方式来处理,将可以解决许多开发者的困难。基于这种所有开发者都共同拥有的需求,让这些PHP的开发者分工合作,共同发展程式库,帮助自己也帮助别人。
2-7 PHP的竞争者与优缺点
PHP是在1994年发展出来的,经过四次主要的改写,成为我们今天所看到的可以广泛应用且成熟的产品。到2005年四月为止,PHP已经运用于全球超过1900万个网站上,而且这个数字还在持续快速成长中。
PHP与他们的竞争对手相比,他具有以下优势:
高效能:不是我黄婆卖瓜,哈哈。.., 我阅览过许多Asp.NET与Jsp的网页,效能上实在无法与PHP相比。(Asp.NET与Jsp的使用者应该不会看这篇文章吧)。
● 可以与许多不同的资料库系统相连结:其他的竞争者也可以,但没有PHP快。
● 易学易用:PHP的程式码的写法非常直觉,容易学习。
● 支援物件导向:这方面Jsp是强项,但PHP5已经追上来了。
● 低成本:根本不用钱。
● 内建非常多的函式库:记得笔者以前使用Asp,内建的函式库实在少的可怜。
● 开放原始码:安全性会比没有开放的高。
● PEAR程式库:这是最近的强力武器,用来与强敌们一争长短。
● 可携性:无论是各类Unix作业系统,如:Linux,FreeBSD,商业版Unix或Windows作业系统都可以使用PHP。
Asp.NET与Jsp当然也有他们独特的优点? 例如,Jsp夹带JAVA强大的功能,它就可以呈现一些目前PHP无法做到的效果。所以Jsp也吸引了许多的使用者,但笔者对Jsp目前的效能实在还不甚满意,相反地,对PHP的快速度满意的不得了。
使用哪一种程式,就由您自行做明确的抉择,不过,若您选择观看文章,相信我们应该都是同道中人,PHP的爱好者。
总而言之,许多PHP高手共同构筑了一个强大的支援网,若您是PHP的程式开发者,却对这些高手的好意毫不领情,那不是太可惜了吗?