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 相关文章推荐
消息持续发送的完整例子
Oct 09 PHP
QQ互联一键登录审核不通过的解决方案
Sep 10 PHP
php+ajax实现无刷新分页的方法
Nov 04 PHP
ThinkPHP自动完成中使用函数与回调方法实例
Nov 29 PHP
php基础教程
Aug 26 PHP
PHP+MySql+jQuery实现的"顶"和"踩"投票功能
May 21 PHP
PHP编辑器PhpStrom运行缓慢问题
Feb 21 PHP
php判断文件上传图片格式的实例详解
Sep 30 PHP
PHP结合Vue实现滚动底部加载效果
Dec 17 PHP
PHP实现支持CURL字符串证书传输的方法
Mar 23 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 PHP
PHP读取文件或采集时解决中文乱码
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中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
使用php计算排列组合的方法
2013/11/13 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
php计算一个文件大小的方法
2015/03/30 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
php 可变函数使用小结
2018/06/12 PHP
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
jquery实现数字输入框
2017/02/22 Javascript
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
解决layui弹框失效的问题
2019/09/09 Javascript
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
PHP webshell检查工具 python实现代码
2009/09/15 Python
读写json中文ASCII乱码问题的解决方法
2016/11/05 Python
详谈python http长连接客户端
2017/06/12 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
破解安装Pycharm的方法
2018/10/19 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
Python常见数据类型转换操作示例
2019/05/08 Python
python 求某条线上特定x值或y值的点坐标方法
2019/07/09 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
python 基于opencv操作摄像头
2020/12/24 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
使用CSS3制作饼状旋转载入效果的实例
2015/06/23 HTML / CSS
vue项目实现分页效果
2021/03/24 Vue.js
党校培训自我鉴定
2014/02/01 职场文书
一体化教学实施方案
2014/05/10 职场文书
留守儿童工作方案
2014/06/02 职场文书
小学运动会班级口号
2014/06/09 职场文书
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android