用Pear加速PHP程序開發(fā)
發(fā)表時(shí)間:2024-06-20 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]及時(shí)交付應(yīng)用程序是確定解決方案采用何種技術(shù)的關(guān)鍵所在,PHP借助于PEAR(PHP Extension and Application Repository:PHP擴(kuò)展與應(yīng)用庫)會(huì)大大促進(jìn)其開發(fā)過程。PEAR是一種代碼庫,它為標(biāo)準(zhǔn)程序功能提供預(yù)先編寫的類,從而大大降低了應(yīng)用程序的開發(fā)時(shí)間。PEAR...
及時(shí)交付應(yīng)用程序是確定解決方案采用何種技術(shù)的關(guān)鍵所在,PHP借助于PEAR(PHP Extension and Application Repository:PHP擴(kuò)展與應(yīng)用庫)會(huì)大大促進(jìn)其開發(fā)過程。PEAR是一種代碼庫,它為標(biāo)準(zhǔn)程序功能提供預(yù)先編寫的類,從而大大降低了應(yīng)用程序的開發(fā)時(shí)間。PEAR在概念上類同于Perl的CPAN,PEAR包含了具有豐富特性的功能函數(shù),包括數(shù)據(jù)庫、郵件和錯(cuò)誤處理等。在采用PEAR的情況下,開發(fā)人員就可以部署和增強(qiáng)已經(jīng)編寫的基本函數(shù)同時(shí)把注意力集中到編寫程序新功能這一方面上來。
PEAR基礎(chǔ)
創(chuàng)建PEAR的目的是為開發(fā)人員共享PHP代碼和促進(jìn)代碼的重用提供一種標(biāo)準(zhǔn)化的方式。該項(xiàng)目始終處于開發(fā)的過程中,用戶可以提交自己編寫的代碼供加入PEAR庫使用,后者則同PHP捆綁。所有的PEAR包都在考慮到語法和可讀性的情況下嚴(yán)格遵守編碼規(guī)則,這些代碼由用C語言編寫的PHP或者PHP擴(kuò)展所組成。
Stig Bakken于1999年晚些時(shí)候開始著手開發(fā)PEAR項(xiàng)目。他的目的是創(chuàng)建一個(gè)有組織的代碼庫,由這個(gè)代碼庫起到PHP開發(fā)人員團(tuán)體的資源庫作用。該項(xiàng)目在過去的兩年里成長的非?欤壳耙呀(jīng)包含了相當(dāng)多的、非常有用的可重用代碼。雖然其他的PHP代碼庫也不少,比如 Zend的Code Gallery和PHP Builder的Source Code Snippet Library等等都非常有名,但是,PEAR提供了一種便利函數(shù)之間互操作的標(biāo)準(zhǔn)。此外,提交給PEAR的代碼會(huì)接受嚴(yán)格的檢查,由這類標(biāo)準(zhǔn)和檢查措施保證代碼的質(zhì)量和可靠性。
有用的網(wǎng)站
PEAR網(wǎng)站
php.net
Concurrent Versions System
Zend
可用的功能
PEAR分成三類:PEAR核心組件、PEAR包和PECL包。核心組件(Core Component)包括PEAR和PEAR_Error的基類以及數(shù)據(jù)庫、HTTP、日志記錄和電子郵件函數(shù)等。PEAR包包括提供認(rèn)證、聯(lián)網(wǎng)和文件系統(tǒng)特性的函數(shù)以及采用XML和HTML模版的工具等。PECL包是對(duì)PHP的擴(kuò)展,它用C語言編寫,并不遵守編碼規(guī)則。目前,所有這一類的代碼都是實(shí)驗(yàn)性的。要了解有關(guān)PEAR功能的更多信息請(qǐng)參考 PEAR在線手冊。
假如你有興趣給PEAR提交代碼,你可以加入PEAR開發(fā)者郵件列表并且請(qǐng)求大家檢查你的代碼,從而實(shí)現(xiàn)以上目的。不過,你得注意到已經(jīng)包括在庫內(nèi)的函數(shù)并且遵守PEAR的編碼規(guī)則。
從哪里獲取PEAR
PEAR捆綁在PHP發(fā)布包內(nèi),當(dāng)你安裝PHP的時(shí)候也就同時(shí)安裝了PEAR。假如你打算獲得一個(gè)穩(wěn)定的版本,而且你可以在沒有最新PEAR版本的情況下也活得下去,那么你可以從php.net的下載網(wǎng)頁獲得最新的PHP版本。假如你喜愛冒險(xiǎn),希望采用最新版本的PEAR,你可以按照匿名CVS訪問的指示用CVS客戶程序下載它。
安裝了PHP之后PEAR資源就會(huì)被放置到~/php/PEAR/ 目錄下。你不妨把自己的php目錄位置增加到php.ini的include_path參數(shù)中來(比如:include_path = ".:/usr/local/lib/php";),這樣就可以使用PEAR功能了。
如何使用PEAR
現(xiàn)在所要做的無非是在用到函數(shù)和你編寫的其他類的地方采用require_once()。清單A中的例子使用了PEAR的電子郵件特性Sendmail。這部分代碼例示了PEAR庫內(nèi)的Mail.php文件,該文件是對(duì)PEAR.php類的擴(kuò)展。
接下來,我們設(shè)置一些必要的變量,它們是$recipients、$headers和$body,這些變量是所有PEAR Mail函數(shù)和$params所需要的。你可以參在線PEAR手冊找出這些變量的設(shè)置方法。在PEAR代碼本身的注釋中也蘊(yùn)涵了很多信息,不過一般而言,網(wǎng)站對(duì)你的幫助還是最大的。
最后,示例代碼會(huì)調(diào)用PEAR Mail類。首先,我們用~/php/Mail.php文件中的Mail::factory方法為郵件驅(qū)動(dòng)程序包含適當(dāng)?shù)念愇募,在我們所舉的例子里就是Sendmail(位于~/php/Mail/sendmail.php文件內(nèi))。接著,我們從PEAR Mail類里實(shí)際調(diào)用郵件發(fā)送函數(shù)。當(dāng)我們對(duì)Mail類實(shí)例化的時(shí)候采用引用(=&)就可以通過引用名$mail_object引用該類了。
假如你想了解PEAR DB函數(shù)的用法,你不妨到 Quick Start Guide to Pear DB去看看,它是由Tomas V. V. Cox負(fù)責(zé)維護(hù)的。
為什么使用PEAR
如上所述,PEAR功能部署簡單,同時(shí)不需要額外的編程。雖然我們可以用PHP的固有函數(shù)達(dá)到同樣的結(jié)果,但是,部署PEAR模塊可以立即為我們帶來錯(cuò)誤檢查等實(shí)際利益,同時(shí)還便利了程序的重用。
此外,越來越多的高級(jí)應(yīng)用程序也開始采用PEAR了,而PEAR的代碼庫也在不斷的增長之中。因?yàn)镻EAR包含在PHP許可權(quán)之內(nèi),所以你可以免費(fèi)使用或者修改你選擇的函數(shù)。還有,你再也不必反復(fù)編寫令人麻木的認(rèn)證模塊了,這對(duì)開發(fā)人員來說可是一項(xiàng)具有相當(dāng)吸引力的好處,而且你還可以享受到定制開發(fā)的莫大優(yōu)點(diǎn)。
好處多多
采用合格的預(yù)編寫、可重用代碼,你就可以顯著地加快應(yīng)用程序的開發(fā)周期而不必在技術(shù)選擇上過分地費(fèi)腦筋了。PEAR是PHP團(tuán)體為便利開發(fā)者而付出的努力所結(jié)出的碩果,它提供了實(shí)現(xiàn)優(yōu)秀應(yīng)用程序的一整套方法。采用PEAR代碼以及為其做出自己的貢獻(xiàn)不僅加快了項(xiàng)目交付時(shí)間,同時(shí)還可以在今天和未來開發(fā)出質(zhì)量更好的應(yīng)用程序。
TechRepublic是一個(gè)專為各類IT專業(yè)人士設(shè)立的在線社區(qū)以及資源中心,我們提供有深度的技術(shù)文章,這些文章由IT專家寫成,面對(duì)IT專家讀者。除了提供從Windows到e-mail到防火墻等各種文章以外,我們還提供IT業(yè)界分析,下載,管理要點(diǎn),討論組以及新聞郵件服務(wù)。