php 什么是PEAR?


Posted in PHP onMarch 19, 2009

PHP爱好者必喜欢PEAR,我们的目的就是希望将PEAR介绍给PHP的程式开发人员,我个人认为引用程式库的程式开发方式已经渐渐成为趋势了,除了php、JSP外,像perl、C++也都有专属的程式库供其开发人员引用。
借着引入PEAR,php的程式开发者除了可以大幅缩?p撰写程式码的工作与时间外,还可以用很简单的方式得到许多??大的动态网页功能,我将会列举许多的实例,让大家看了后,一定会啪掌叫好,?K深深的迷上了PEAR。此外,程式码很容易维护,安全性高也是PEAR另2个很吸引人的优点,PAER程式库宛如模组,可以轻易的抽?Q与更新,完全不会影响到其他的程式码。
我们是从最基本的观念介绍起,包括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的程式玩家,想要开发更有趣的,功能更??的应用程式,?s不想被撰写PHP程式的一些烦恼绑缠,PEAR绝对可以满足您的要求。
◆ 自己撰写PHP程式,?s不喜欢每次都要从零开始,一字一字地敲打程式码,PEAR可以提高您的工作效率。
◆ 您想要学习功能性??,安全性高的PHP,当学会了PHP的基本语法后,可以试著使用PEAR。
◆ 您需要量身定造的PHP应用程式,?Q言之,您不喜欢像XOOPS之类的套装应用程式,来试试PEAR吧。
◆ 您需要容易维护的PHP应用程式,不想日后常修改程式码,或因为PHP的改版而将整个程式重新设计。
◆ 您希望您的PHP程式可以物件导向化,方便程式的抽?Q与模组化。
◆ 您希望您的PHP功力更上一层楼,想要学习更多的PHP相关知识,透过PEAR的使用或观看PEAR的原始码,不失为一个好的学习途径。
PEAR就是专门为有以上这些需求的人所写的。
使用PEAR就像建一座房子一?印K?侨媚?迷ぶ萍?姆绞剑?ㄒ欢白约荷杓萍媸┕さ拇蠓孔樱??s不需要自己搅拌水泥,自己?时干惩痢⑹?罚?约??抛??约鹤雎撩糯?自己做木工装饰等等...。
PEAR就像是已经针对您的需求所订制好?K?时负玫脑ぶ萍???恍枰?擞么匆饨??亲楹掀鹄淳涂梢粤恕
我门在使用PEAR来编写PHP程式时,必需有一个先?Q条件,就是必需对PHP的相关知识有一定的认识。
若您不知道甚?是PHP,什?是Apache、Mysql,或者您虽然知道,?s还不会PHP的基本语法,那?,本文章目前?K不适合您。建议您快去买些PHP、Apach、Mysql的入门书籍,详加研读后,才来看本文章。
大家?K不一定要是PHP高手,但一定需要具备看懂基本PHP程序码的能力。无论如何,首先对PHP的热爱才是?读本书最基本的先?Q条件。
第二章
PHP有许多的规范与语法,我们不做介绍,请大家有空去?读有关PHP的书籍,我们重点介绍的是PHP发展到4.0版以后。加入了物件导向(Object-Oriented Programming Language)的功能,虽然还无法像了Java一?幼龅酵耆?奈锛?枷颍??绕鹎鞍姹?HP3.0已经是一大进步,也对PHP的程序开发者提供了更??大与更方便的开发能力。
PHP 5.0版以上的版本,已经转变成为彻底的物件导向化,提供了更多完全物件导向功能。我们所介绍的PEAR程式库对PHP 4.3.0以上的版本是完全的支援。这一点请大家放心。
为了大多数人著想,也考虑到PHP向下的相容性,本书的?热萦敕独?伎梢栽?HP 4.3.0版以上的环境中执行,因为PEAR完全支援PHP 4.3.0以上的版本,小于PHP 4.3.0版的环境,PEAR大部分也是支援的,只有小部分不支援。
什么是PHP的物件导向? 物件导向的语法在传统的PHP程式中较少看到,但若您了解JAVA这种程式语言的话,您应该可以知道什?足物件导向,我会在附?B有针对物件导向做简单的?明。
另外,我要??调的是:PHP除了基本语法外,?冉ǖ暮?骄陀谐??锨Ц觯?M跨上百种类?e,包括文字类函式、数字类函式、资料库类、图形类等等,功能相当??大,令人吒舌。但相对於程式开发者,如何善用这些函式,配合PHP的语法撰写有效又好管理的程式码,将会是一大挑战。
在今天,有PEAR这个由全世界众多顶尖的PHP高手所共同生?的智慧结晶,可以让我们轻松又有效率地撰写程式码,?K克服许多撰写上的困难。以武侠界的例子来?,用PEAR撰写PHP就宛如数百位武林高手灌注他们的功力给程式开发者。让程式开发者不用从最基本的练功,?马步练起,借用他们的功力就可以很轻松的让功力倍增,效率倍增。
?了半天,到底什?是PEAR?下一个单元笔者就来做个介绍。
PEAR这个字单纯就字面上而言意思是「梨子」。
一颗梨子。官方网站的网址为http://pear.php.net
PEAR官方网站的logo中可以看到例子。
PEAR的开始是从1999年11月2l日。有一位名叫Stig S.Bakken的先生,这位仁兄发起了一个专案,?K号召许多的PHP高手来共同投入,他首先为这个专案建立了一些程式码的基础规则,希望PHP的开发者加入这个专案时所撰写的PHP程式码都需要遵守这些规则。
这个专案名称就是PEAR,其实是PHP Extension and Application Repository的缩写,意即「PHP的延续与应用程式库」,简单的?,PEAR其实是一个PHP的程式库。
Bakken先生建立的程式码基础如下,我只概略?明一下,?K不详谈细节的部分:
◆ 如果开发者要提供PHP程式库,程式的结构必须物件化。
◆ 程式的缩排要遵循一定的格式
◆ 程式中类?e的命名也要遵循一定的格式
◆ 程式码的?解要有一定的格式
◆ 档案命名要有一定的格式
◆ 程式库撰写完成后要包装成套件,而套件的包装与安装方式,也有一定的格式。
该专案欢迎所有的PHP开发者来共同开发PHP程式库,只要他们愿意遵守上述的程式码基础规则。Bakken先生?K组织了一组团队作为这个专案的控制主体,负责审核所有参与专案的开发者所提供的程式库,若通过审核,就将程式库分类?K放入官方网站中供其他开发者下载使用,另外,这个团体也负责维护官方网站的维护与更新。
有些人可能会很好奇,为什?有人会愿意免费撰写程式库让别人来使用呀? 这就是开放原码世界的精神一互助、共享。试想,若每个开发者针对自己专精的部分开发程式库给其他人使用,同时也享用?e的开发者所释出的程式库,是不是可以达到互助的目的,让每一个开发者共享所有的开发者的成果.不必所有的程式码都要自己撰写。
更棒的是,这些程式库是免费开放给全世界的人使用的,不只参与程式库开发的开发者可以享用(这种作法与Java或perl提供函式库的作法是一?拥模?
因此,全世界所有的PHP开发者可以省去许多撰写程式码的时间,又因为使用程式库的开发者可以回报程式库的缺失给原开发者,原开发者也因此会不断的修正这些程式库,所以程式码相对安全。另外,程式库开发者也会随着时代演进,加入新的功能到程式库中,让程式库的使用者可以与时俱进。
详细情?r可参?PEAR的官方网站中所提到关於开发PEAR的目的?明:http://pear.php.net/manual/en/about-pear.php。我建议您有时间慢慢地看吧,继续将本文章看下去,您就会慢慢了解PEAR的神奇之处了。
我在文章的最后有一章附?:PEAR官方网站的介绍,大家可以先参考一下。
如果您还不太了解我介绍所谓「程式库」的意思,?]关系,下一节就会透过实际的例子加以?明。
2-3 所有套件简介
? 程式库VS套件
介绍所有套件之前,我们必须?清两个名词,以免读者混淆了,一个就是「程式库」,另外一个就是「套件」。
假如我是是一个PHP的开发者,发展了一个可以处理所有资料库存取「程式库」,?K想将这个程式库加入PEAR分享给全世界使用。当我撰写完理资料库的程式库后,我必须按照PEAR的规定,将程式库压缩成一个「件」档,放在PEAR官方网站供所有人下载,也由於遵循PEAR的规定来压缩档案,这个套件就可以用PEAR的套件管理指令来安装或管理,这对PEAR使用者而言是相当便利的,关於套件管理指令,我会在下一章做完整的?明经过上述的?明,相信读者应该了解何谓「程式库」、何谓「套件」?其实,简单的?,把程式库包装好就变成了套件。
? 套件与分类
PEAR截至目前为止释出的套件已高达三百多个,共分为35大类,而且不断增加中。大家可以想像全世界的顶尖PHP开发者的结合,是一股多大的团结力量。下图是官方网站中套件的分类:
PEAR因为释出的套件太多了,为了管理上的方便所以依套件的功能将套件做分类,同一类的套件在效果上都有相关性,但提供的功能?s不尽相同小接下来,我将所有的分类用表格的方式做一个简单的介绍,让大家多了解一下PEAR套件可以提供哪些功能。
这?多的分类,每一类都会依功能的不同发展出不同的套件。以第一个认证类为例,若您到官方网站去看,会发现目前该类中共有8个套件
这8个套件都是与身份认证有相关的套件,如果您想要网页具有身份认证功能,例如,可以让网页浏览者?册、输入帐号密码、判?e身份、给予权限等等。就会需要用到这些套件。
我再补充一点:有些套件已发展成熟,开发者会将它称为稳定(stable)版,但若程式库尚在发展中,但也已经可以使用,开发者将它释出,通常会称为测试版(alpha or beta)版。官方网站也会记?套件的开发者与维护者的姓名,有时候一个套件是由许多人共同开发而成的。
这些套件的讯息都可在PEAR的官方网站中找到,我在附?〈PEAR官方网站的介绍〉会介绍如何使用PEAR官方网站。
2-4 使用PEAR程式库的简单范例
在这一节中,我用l个简单的范例来?明程式库的使用。
假设您想要制作一个网页,?K且希望知道网页执行时所耗用的时间,则可以借用PEAR所释出的名为Benchmark的程式库。这个程式库开发出来的目的就是用来计算网页的执行时间。
首先,先将Benchmark程式库套件安装好(安装方法请参考下一章)。接著我们就可以开始撰写网页了,例如:我们建立了一个名为show.php的网页。
基於?明上的方便,我在每一行程式前面加上行号,大家实际上撰写程式时是不用加上行号的。
第1行与第2行的程式码首先引用Benchmark套件中的Timer.php网页,这个网页?群?扑愀僖持葱惺奔涞某淌娇狻?nclude_once可以将某一个外部的网页放到这个纲页来,我称这个动作叫做「引用」, 本例相当於执行了Timer.php与show.php两个网页。
第3行,用new关键字建立一个Benchmark_Timer物件,?K将该物件放入名为$timer的变数中。接著使用细$timer物件的start( )方法?⒍?敝樱?缓蠹由衔易约旱某淌铰耄?死?惺且恍屑虻サ某淌健
接著就是要结束时钟的计时,计算网页执行所花费的时间?K将它显示出来。第8行先用$timer物件的stop( )方法来停止时钟,?K用第9行$timer物件的timeElapsed( )方法计算时钟从?⒍?酵V怪屑涞氖奔洳睿?K将计算结果放入$totaltime变数中。
最后用echo函式显示时间差在网页上。
由结果可清楚看到show.php网页从开始执行到执行完毕总共花了0.00013613700866699秒,以后可以借由观察这个数字来判断系统效能,或做为程式码改进的参考。如何,执行时间的计算是不是方便、快速又神奇呢!
如果您需要在其他网页上也可以有计算网页的执行时间的功能,只要用上述方式套用在其他PHP网页上就可以了。
事实上,其他套件的使用方式也跟这个套件的使用方式大同小?.差别只是在每个套件所提供的类?e、方法以及使用的参数各有不同而已。
套件虽然好用,但相信读者还是有许多的疑惑? 例如:
1. Benchmark程式库套件是怎?来的?要有哪些前置工作才可以使用它?
2. 我是如何知道使用Benchmark套件的方法?
第1个问题牵涉到如何安装PEAR套件,以及安装后套件的管理、升级、?h除等问题,我会在第3章加以介绍。第2个问题,笔者会在第4章针对如何使用套件、如何得到套件的资讯等做一个详细的?明。
2-5 为何要用PEAR
为何要使用PEAR? 我根据自己的心得,归纳出以下几点:
1. 省时省力:许多程式码都被撰写在程式库中,开发者只需引用含程式库的PHP档,就可以拥有程式库所提供的功能,省去自行撰写的时间与精力。
2. 安全:由於这些程式库套件都将原始码公开,使用者若发现bug,可以立即向套件的开发者反映,开发者通常也会立即加以修正,让程式库的错误?p到最小。
3. 容易维护:自行撰写的程式码与PEAR程式库的程式码分开,若PEAR套件因为有新功能被开发或修正错误而释出新版本,只需更新套件即可,完全不会动到自行撰写的程式码。
4. 功能??大:PEAR套件所提供的功能非常之多,除了一般常用功能如:资料库的连结、设定档的处理、身份的认证、以及表单的处理。另外,较为进阶的功能,例如像网路邮局、网路管理、动态方式?生图形、RSS、Wiki,或者像phpBB的BBCode解析等等都可简单做到。
5. 让网页的程式开发与版面设计分开:PEAR提供许多?影宓某淌娇猓?扇贸淌娇?⒂氚婷嫔杓品挚??奖沆冻淌娇?⒄哂胪?成杓普叻止ず献鳌
6. 对学习PHP者是一套?佳的学习范例:程式库的?解?明十分详细,程式码的撰写,具有一定的规则与格式,而且完全物质化,让开发者容易看懂?K学习。有些套件还?雀浇萄?募?敕独?玻?钪匾?氖牵耗悴挥没ò朊??涂傻玫剑?颐怯Ω酶行惶准?淖髡呙?他们为我们付出了无私的贡献。
2-6 为什么要建立PEAR社团
是什?原因促使全世界的PHP开发者大团结,共同开发出PEAR这个程式宝库呢? 我就认为有以下几个原因:
1.遭受其他竞??者的??大竞??:这一点第1章已经?明过了。
2.PHP的物质化:从PHP4加入物质导向的功能后,PHP5更是进一步物质化。除了要与ASP.NET、JSP一拼外,就是方便於程式的模组化,让程式库的开发可以进行,有了物质化的功能,程式库才可以与开发者自行撰写的程式码切割。
3.开发者的共同需求:如果每一次开发PHP程式,都要从无到有完全自己来,虽然可以锻?程式功力,但?s?]有效率,也不甚经济。若一些常用的功能可以用程式库的方式来处理,将可以解?Q许多开发者的困难。基於这种所有开发者都共同拥有的需求,让这些PHP的开发者分工合作,共同发展程式库,帮助自己也帮助别人。
2-7 PHP的竞??者与优缺点
PHP是在1994年发展出来的,经过四次主要的改写,成为我们今天所看到的可以广泛应用且成熟的?品。到2005年四月为止,PHP已经运用於全球超过1900万个网站上,而且这个数字还在持续快速成长中。
PHP与他们的竞??对手相比,他具有以下优势:
高效能:不是我黄婆卖瓜,哈哈。.., 我?览过许多Asp.NET与Jsp的网页,效能上实在无法与PHP相比。(Asp.NET与Jsp的使用者应该不会看这篇文章吧)。
● 可以与许多不同的资料库系统相连结:其他的竞??者也可以,但?]有PHP快。
● 易学易用:PHP的程式码的写法非常直觉,容易学习。
● 支援物件导向:这方面Jsp是??项,但PHP5已经追上来了。
● 低成本:根本不用钱。
● ?冉ǚ浅6嗟暮?娇猓杭堑帽收咭郧笆褂?sp,?冉ǖ暮?娇馐翟谏俚目闪?
● 开放原始码:安全性会比?]有开放的高。
● PEAR程式库:这是最近的??力武器,用来与??敌们一??长短。
● 可?y性:无论是各类Unix作业系统,如:Linux,FreeBSD,商业版Unix或Windows作业系统都可以使用PHP。
Asp.NET与Jsp当然也有他们独特的优点? 例如,Jsp夹带JAVA??大的功能,它就可以呈现一些目前PHP无法做到的效果。所以Jsp也吸引了许多的使用者,但笔者对Jsp目前的效能实在还不甚满意,相反地,对PHP的快速度满意的不得了。
使用哪一种程式,就由您自行做明确的抉择,不过,若您选择观看文章,相信我们应该都是同道中人,PHP的爱好者。
总而言之,许多PHP高手共同构筑了一个??大的支援网,若您是PHP的程式开发者,?s对这些高手的好意毫不领情,那不是太可惜了吗?

PHP 相关文章推荐
php不用内置函数对数组排序的两个算法代码
Feb 08 PHP
php使用正则表达式获取图片url的方法
Jan 16 PHP
如何解决PHP无法实现多线程的问题
Sep 25 PHP
编写PHP脚本来实现WordPress中评论分页的功能
Dec 10 PHP
使用php+swoole对client数据实时更新(一)
Jan 07 PHP
PHP使用SOAP扩展实现WebService的方法
Apr 01 PHP
php面向对象值单例模式
May 03 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
Oct 13 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
PHP分享图片的生成方法
Apr 25 PHP
thinkphp5实现微信扫码支付
Dec 23 PHP
PHP7 windows支持
Mar 09 PHP
php 信息采集程序代码
Mar 17 #PHP
php cookie 登录验证示例代码
Mar 16 #PHP
php 删除cookie和浏览器重定向
Mar 16 #PHP
php cookis创建实现代码
Mar 16 #PHP
php session应用实例 登录验证
Mar 16 #PHP
php session处理的定制
Mar 16 #PHP
php session 检测和注销
Mar 16 #PHP
You might like
如何获得PHP相关资料
2006/10/09 PHP
网络资源
2006/10/09 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
PHP命名空间简单用法示例
2018/12/28 PHP
php解决安全问题的方法实例
2019/09/19 PHP
JQuery下拉框应用示例介绍
2014/04/23 Javascript
node.js中的buffer.Buffer.isEncoding方法使用说明
2014/12/14 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
利用纯js + transition动画实现移动端web轮播图详解
2017/09/10 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
浅谈jquery fullpage 插件增加头部和版权的方法
2018/03/20 jQuery
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
Vue实现验证码功能
2019/12/03 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
python检测是文件还是目录的方法
2015/07/03 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
基于Django filter中用contains和icontains的区别(详解)
2017/12/12 Python
python复制文件到指定目录的实例
2018/04/27 Python
用Cython加速Python到“起飞”(推荐)
2019/08/01 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
意大利男装网店:Vrients
2019/05/02 全球购物
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
幼儿园秋游感想
2014/03/12 职场文书
社区网格化管理实施方案
2014/03/21 职场文书
诚信考试承诺书
2014/03/27 职场文书
银行职员自我鉴定
2014/04/20 职场文书
招标授权委托书样本
2014/09/23 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
超市工作总结范文2014
2014/12/19 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js