初識(shí)PEAR
發(fā)表時(shí)間:2023-07-31 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]仙人掌工作室一、什么是PEAR?為什么需要它? 為了創(chuàng)建一個(gè)類似于Perl CPAN檔案的工具,Stig S. Bakken創(chuàng)立了PEAR項(xiàng)目。PEAR的基本目標(biāo)是發(fā)展成為PHP擴(kuò)展和庫代碼的知識(shí)庫...
仙人掌工作室
一、什么是PEAR?為什么需要它?
為了創(chuàng)建一個(gè)類似于Perl CPAN檔案的工具,Stig S. Bakken創(chuàng)立了PEAR項(xiàng)目。PEAR的基本目標(biāo)是發(fā)展成為PHP擴(kuò)展和庫代碼的知識(shí)庫,而這個(gè)項(xiàng)目最有雄心的目標(biāo)則是試圖定義一種標(biāo)準(zhǔn),這種標(biāo)準(zhǔn)將幫助開發(fā)者編寫可移植、可重用的代碼。
Internet上已經(jīng)有關(guān)于該項(xiàng)目的一些文檔。例如,一些初始的資料已經(jīng)可以在PHP正式手冊(cè)中找到,更多的資料即將加入。
在很大程度上,PEAR還是一項(xiàng)正在進(jìn)行之中的工作。在未來的幾個(gè)月內(nèi),PEAR安裝程序和PEAR網(wǎng)站將有很大的發(fā)展。為了在下一個(gè)PHP版本中使用PEAR管理數(shù)量日益增長的C擴(kuò)展,以及用PEAR安裝程序作為用戶把擴(kuò)展下載和安裝到PHP的前端工具,在PHP Core Developer郵件列表上已經(jīng)有了大量的討論。
另外,我們還必須關(guān)注PEAR的PHP庫代碼。PEAR的PHP庫代碼常常被認(rèn)為是當(dāng)前設(shè)計(jì)最好、最整潔的庫。PEAR::DB是其中最受歡迎的一個(gè)包,這個(gè)包是PEAR項(xiàng)目創(chuàng)建的一個(gè)數(shù)據(jù)庫抽象庫。Bakken正在努力,要把它主要的類和函數(shù)移植到C擴(kuò)展上,使得這個(gè)包具有最好的性能。
毫無疑問,這個(gè)新的項(xiàng)目必將成為未來PHP最重要的組成部分之一,它使得開發(fā)者能夠方便地通過PEAR網(wǎng)站共享代碼,使得用戶能夠方便地下載和安裝擴(kuò)展、PHP代碼庫。
二、如何使用PEAR?
正如前面提到的,PEAR正在不斷地發(fā)展和改進(jìn)。不過,現(xiàn)在已經(jīng)有許多包可供使用。其中最受歡迎的一個(gè)包就是PEAR::DB,它使得開發(fā)者能夠編寫出可同時(shí)用于多種不同數(shù)據(jù)庫服務(wù)器的代碼。例如,開發(fā)者能夠編寫出把數(shù)據(jù)庫記錄插入表的腳本,而且這個(gè)腳本適用于MySQL、PostgreSQL和Oracle。
也就是說,下面這個(gè)實(shí)例能夠適用于所有不同類型的數(shù)據(jù)庫服務(wù)器:
<?php
// 引入合適的PEAR類
require_once("DB.php");
$dsn = array(
'phptype'=> 'mysql',
'hostspec' => 'localhost',
'database' => 'test_db',
'username' => 'test_user',
'password' => 'test_password'
);
$dbh = DB::connect($dsn);
$stmt = "SELECT id, name FROM examples ORDER BY id";
$result = $dbh->simpleQuery($stmt, DB_FETCHMODE_ASSOC);
if ($dbh->numRows($result) > 0) {
$data = (object) $dbh->fetchRow($result, DB_FETCHMODE_ASSOC);
echo "id => $data->id<br>\n";
echo "name => $data->name<br>\n";
}
?>
這是一個(gè)簡單的例子,顯示了使用象PEAR::DB之類的抽象庫編程究竟是什么樣子。
最近,PHP基本手冊(cè)中加入了一章新的內(nèi)容。但是,究竟是由該手冊(cè)包含整個(gè)PEAR庫的說明,還是為各個(gè)PEAR包編制獨(dú)立的手冊(cè),這一切尚未明了。
三、安裝
安裝PEAR實(shí)際上很簡單。由于PEAR庫更新很快,所以下面我要介紹的是如何安裝PEAR最新的CVS版本。
注意:PEAR內(nèi)部知識(shí)庫系統(tǒng)將來可能要發(fā)生變化。就目前來說,PEAR包、庫與PHP本身一起保存到同一CVS樹,它可能導(dǎo)致在管理PHP主知識(shí)庫和開發(fā)者、PEAR本身的知識(shí)庫和開發(fā)者這兩方面都出現(xiàn)問題?梢灶A(yù)料,在不遠(yuǎn)的將來,PEAR將分離成為獨(dú)立的模塊/樹。這個(gè)模塊已經(jīng)存在,但大部分的包仍舊在老位置。
如果你從來沒有聽說過CVS,請(qǐng)看看相關(guān)資料。CVS不是一種特別難用的技術(shù),但熟悉它卻需要一定的時(shí)間。
假設(shè)你的機(jī)器上已經(jīng)安裝好了標(biāo)準(zhǔn)的CVS客戶軟件,接下來你應(yīng)該:
打開一個(gè)終端窗口(rxvt,xterm,或其他)。
輸入下面的命令:
cvs -z3 -d :pserver:cvsread@cvs.php.net:/repository login
Password: [在這里輸入“phpfi”作為密碼]
cvs -z3 -d :pserver:cvsread@cvs.php.net:/repository co php4
[這個(gè)命令將創(chuàng)建新的目錄php4]
cd php4
cvs -z3 -d :pserver:cvsread@cvs.zend.com:/repository login
Password: [這里輸入密碼zend]
cvs -z3 -d :pserver:cvsread@cvs.zend.com:/repository co Zend TSRM
[該命令將在php4下面創(chuàng)建兩個(gè)新目錄,名字為“Zend”和“TSRM”]
./buildcon
這就是全部的安裝過程。運(yùn)行buildconf將創(chuàng)建標(biāo)準(zhǔn)的configure腳本,這個(gè)腳本可以用來設(shè)置PHP選項(xiàng)。在默認(rèn)安裝中,PEAR將自動(dòng)安裝到/usr/local/lib/php下。但是,你也可以手工構(gòu)造各個(gè)文件,方法是:以超級(jí)用戶身份進(jìn)入,轉(zhuǎn)到php4/pear目錄,執(zhí)行make install-su。
除此之外,你還應(yīng)該把PEAR根目錄加入到php.ini文件的include_path。默認(rèn)的目錄應(yīng)該是/usr/local/lib/php,但如果你手工修改了選項(xiàng),它可能在其他位置。
四、獲取幫助
PEAR的包涵蓋了從數(shù)據(jù)庫抽象層到輸出緩沖系統(tǒng)的方方面面,因此PEAR遠(yuǎn)遠(yuǎn)不止是一個(gè)簡單的庫——它是一種編寫整潔、可移植代碼的新標(biāo)準(zhǔn)。對(duì)于PEAR新手來說,最重要的事情之一就是閱讀PHP手冊(cè)中出版的編碼標(biāo)準(zhǔn)。下面是幾個(gè)獲得PEAR幫助信息的地方:
查找PEAR-DEV或PEAR-GENERAL,尋求問題的答案。
查閱隨同PEAR源代碼提供的單元測試腳本。這些腳本的位置在PHP CVS源代碼所在目錄之下。例如,在我這里,它是/home/jpm/php4/pear/DB/tests/。
通讀Tomas Cox優(yōu)秀的PEAR::DB指南。
到目前為止,PEAR的真面目尚未完全顯露在世人眼前。但是,我希望本文已經(jīng)成功地為你勾勒了它的大致面貌。
好好享受吧!