文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>什么是PEAR?(第五篇)

什么是PEAR?(第五篇)

时间:2007-05-24  来源:panzt

第四章 如何使用套件
从第一章与第二章,大致上大家应该了解PEAR的意义,从第三章,也知道了PEAR基本套件与指令的安装方法。我们好不容易,搞定了使用PEAR套件的前置工作,接下来就可以一步步来感受PEAR的?大威力,相信大家已经迫不及待了。
使用PEAR,大致上只需三个步骤,第一步是安装套件,第二步是引用套件,第三步是使用套件。
? 安装您需要的套件
各位还记得第二章我曾经介绍一个Benchmark套件的show.php范例档吗?那是一个计算网页执行时间的范例程式。笔者再呈现一次原始码如下,借由该原始码来?明如何使用PEAR套件,?为了方便我来解?,特?在程式码前加上行号:

短短11行的程式码,除了第6行与第10行我用echo( )函式显示「Hello World」字串与「本页执行时间为秒」字串外,其余的程式码都是与Benchmark套件有相关性的。
假设已经安装好了PEAR的基本套件,但?尚未安装Benchmark套件,若直接执行show.php的话,会出现以下画面:

?行?果告?我?,?行的?程中,?生了??,?有??警告?息:
● 第1?警告?息是程式?行到show.php?的第二行??生??,??的原因是?法??Benchmark/Timer.php?。
● 第2?警告?息是?在include_path的路?下找不到Benchmark/Timer.php?。
??????息其?所指的是同一件事情,?程式?的第二行要引用Benchmark?料?中的Timer.php??,系??先在show.php?的同一路?下找?Benchmark?料?,若找不到,再?到php.ini?中,include_path所指的路?中去?找Benchamrk?料?。
???息告?了我?,在以上??地方都找不到Benchmark?料??Timer.php?,?是?然的,因?我?尚未安?Benchmark套件,系?找不到是必然的。
所以我们用指令安?的方法?安?Benchmark套件,只要使用:

这个指令,就可以了,安装画面如下:

最后一行出现install ok代表安装成功了。大家来重新整理一次show.php档的执行结果,出现如下画面。

这一次?有出现错误讯息了,因为系统会在include_path所指定的路径中顺利地找到Benchamrk资料夹与Timer.php档。这两者都是刚才安装Benchmark套件时被安装上去的。
由执行结果可看出我们已经成功执行Benchmark套件中的时间计算功能了。这可是本书第一个使用PEAR套件完成的php档。
请注意,若前一章所提的php.ini档中的include_path的值若?有设定正确的话,仍然会出现错误讯息喔,而且windows系统与Unix系统的路径写法是不同的,请不要混淆。
若您真的不会修改include_path,也可以用手动的方式,将Benchamrk套件下载,解压缩后将Benchmark资料夹放置到与show.php相同的路径处,这?也是可以达到引用套件的效果,不过这不是一个好方法,尽量使用「套件管理指令」与修改include_path的方法吧,才不枉PEAR团队想帮开发者节省时间的一番苦心。
? 引用套件
第一个步骤安装套件完成后,第二个步骤就是引用程式库,笔者所谓的引用,就是某一个php档?与其他的档案结合的意思,例如上述的例子,show.php虽然只是单一个php档?,但程式码中因为有第2行的

将使得show.php档执行时会在第2行插入?执行Timer.php档的?容。
Php引用其他档案的方法是利用4个?建函式,分?是:
● Include( )
● Require( )
● include_once( )
● require_once( )
这4个函式可以互相取代,也就是?show.php的第2行也可以改写为:





这4种写法,程式执行的结果是一?的,差?在於include_once( )和require_once( )函式若发现某一个档案已经在其他引用档中被引用过了,将不会再次引用,也就是可以避免重复引用同一个档案,这?子可以节省系统资源以及防止错误发生。因此笔者撰写php时若有需要引用其他档案,都使用include_once( )或require_once( ),而不用include( )或require( )。
这4种引用的方式,会先从档案本身所在位置去寻找被引用档,若以show.php范例档来?,当系统执行第2行的程式码时会先在show.php档所在位置寻找是否有一个资料夹名为Benchmark,且资料夹中是否有一个名为Timer.php的档。
若寻找不到,将转而寻找php.ini档中所记载的include_path所指定的路径。若在include_path的路径下也找不到,PHP就会将错误讯息显示在浏览器上。
本例中,系统执行show.php档的第2行时,是在include_path所指定的路径下找到Benchmark资料夹与其中的Timer.php档。
所以若?有正确地设定php.ini中的incluede_path的话,就必须用?对路径来引用档案,也就是?在Windows系统中,第2行应改写为:

在Liunx中第二行应改写为:

在旧环境的FreeBSD中第二行应改为:

在新环境的FreeBSD中第二行应改为:

因为在前一章中,笔者的php.ini档有做正确的include_path设定,将路径指到PEAR套件安装后所在位置。也因此可以在引用档案时撰写较少的程式码,不用麻烦地使用?对路径,而且,若有一天笔者要在这两种不同类型的系统中移转PHP档? 时只要修改php.ini档就可以了,不用改写路径的程式码,这就是设定php.ini档include_path值的好处。
? 剖析原始码
第3个步骤是使用套件,但在介绍如何使用套件?的程式库前,笔者必须先介绍一些PHP物件导向程式设计的基本概念,甚至於,我们必须进入程式库的原始码来了解一下程式库的真面目。
◆ 为何要?读原始码
可能您会?,会用套件就好了,何必去了解原始码?看原始码总是让人头昏眼花。笔者认为,这话虽不错,套件的程式库通常是既?大又完整,您也许不用看原始码,透过?读使用?明或范例程式,也可以将套件功能使用的很好。
但我认为,透过?读原始码,除了可以学习php的程式撰写,提升使用者的php功力外,也可以了解套件的功能是如何作用与?动的,最重要的是若使用套件的过程中发生问题,可以借由检视原始码来排除错误,另外,也可以将套件输出到网页的讯息中文化。
本章仅就使用套件所需要的概念作介绍,也就是?若您只想单纯的使用套件的程式库,?不想管程式码的运作方式,那?以下的?容应该就足?了。至於较完整的PHP物件导向程式设计,笔者留待下一章再来详谈。
◆ PEAR套件的程式码共同的特点
先前提过,PEAR团队订定了一些程式码的基本规则来让套件开发者遵守,也因此,PEAR套件有许多的共同点:
① 所有套件都?用物件导向的方式撰写程式码:我认为只有学习了PHP物件导向的原理,才能享用物件导向所带来的?大功能与方便性,而本章将带到一些php物件导向程式设计的概念,若您对php的物件导向程式设计已经非常了解,或者你只想单纯当个套件使用者,不想观看原始码的话,以下?容可以跳过,直接去看第五章吧。
② 所有套件中php程式的撰写都有一定的格式:在PEAR官方网站中的使用手?有针对php的撰写格式订定一定的规范,若要参与套件开发的程式开发者,都必须遵守此规范。我举个例子:开发者撰写php程式若需要缩排,一律须缩排四个空白,诸如此类。其他还有许多规则,请有心者自行参?PEAR官方网站。这?做对使用者最大的好处是:让程式码整齐有条理,?读起来较不费力。
③ 所有套件中每一段程式码前都有详细的?解:更重要的是?解也有一定的格式,因为PEAR中有一个phpDocumentor套件,可将?解从程式中抽离出来加以解析,?自动编制成使用?明文件或使用?明网页,让开发者不用额外撰写使用指南。这个套件希望在我另外的文章中能?介绍。
◆ 套件的程式码?容
套件中的程式码大致上可分为四个部份;
1. ?解
2. 引入其他PEAR套件档
3. 类?
4. 属性与方法
笔者将在以下子单元加以?明:
▲ ?解
下面我以Timer.php档为例来?明,这个档存在於Benchmark套件中,我在自行撰写的范例挡show.php中曾被加以引用。Time.php档前1-16行:

除了第1行的“

相关阅读 更多 +
排行榜 更多 +
jojo的奇妙冒险手机版下载

jojo的奇妙冒险手机版下载

飞行射击 下载
雪糕工厂 v9.87.13.02 安卓版

雪糕工厂 v9.87.13.02 安卓版

休闲益智 下载
雪糕工厂 v9.87.13.02 安卓版

雪糕工厂 v9.87.13.02 安卓版

休闲益智 下载