初識PEAR
來源:互聯網
上載者:User
仙人掌工作室
一、什麼是PEAR?為什麼需要它?
為了建立一個類似於Perl CPAN檔案的工具,Stig S. Bakken創立了PEAR項目。PEAR的基本目標是發展成為PHP擴充和庫代碼的知識庫,而這個項目最有雄心的目標則是試圖定義一種標準,這種標準將協助開發人員編寫可移植、可重用的代碼。
Internet上已經有關於該項目的一些文檔。例如,一些初始的資料已經可以在PHP正式手冊中找到,更多的資料即將加入。
在很大程度上,PEAR還是一項進行中之中的工作。在未來的幾個月內,PEAR安裝程式和PEAR網站將有很大的發展。為了在下一個PHP版本中使用PEAR管理數量日益增長的C擴充,以及用PEAR安裝程式作為使用者把擴充下載和安裝到PHP的前端工具,在PHP Core Developer郵件清單上已經有了大量的討論。
另外,我們還必須關注PEAR的PHP庫代碼。PEAR的PHP庫代碼常常被認為是當前設計最好、最整潔的庫。PEAR::DB是其中最受歡迎的一個包,這個包是PEAR項目建立的一個資料庫抽象庫。Bakken正在努力,要把它主要的類和函數移植到C擴充上,使得這個包具有最好的效能。
毫無疑問,這個新的項目必將成為未來PHP最重要的組成部分之一,它使得開發人員能夠方便地通過PEAR網站共用代碼,使得使用者能夠方便地下載和安裝擴充、PHP程式碼程式庫。
二、如何使用PEAR?
正如前面提到的,PEAR正在不斷地發展和改進。不過,現在已經有許多包可供使用。其中最受歡迎的一個包就是PEAR::DB,它使得開發人員能夠編寫出可同時用於多種不同資料庫伺服器的代碼。例如,開發人員能夠編寫出把資料庫記錄插入表的指令碼,而且這個指令碼適用於MySQL、PostgreSQL和Oracle。
也就是說,下面這個執行個體能夠適用於所有不同類型的資料庫伺服器:
<?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";
}
?>
這是一個簡單的例子,顯示了使用象PEAR::DB之類的抽象庫編程究竟是什麼樣子。
最近,PHP基本手冊中加入了一章新的內容。但是,究竟是由該手冊包含整個PEAR庫的說明,還是為各個PEAR包編製獨立的手冊,這一切尚未明了。
三、安裝
安裝PEAR實際上很簡單。由於PEAR庫更新很快,所以下面我要介紹的是如何安裝PEAR最新的CVS版本。
注意:PEAR內部知識庫系統將來可能要發生變化。就目前來說,PEAR包、庫與PHP本身一起儲存到同一CVS樹,它可能導致在管理PHP主知識庫和開發人員、PEAR本身的知識庫和開發人員這兩方面都出現問題。可以預料,在不遠的將來,PEAR將分離成為獨立的模組/樹。這個模組已經存在,但大部分的包仍舊在老位置。
如果你從來沒有聽說過CVS,請看看相關資料。CVS不是一種特別難用的技術,但熟悉它卻需要一定的時間。
假設你的機器上已經安裝好了標準的CVS客戶軟體,接下來你應該:
開啟一個終端視窗(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
[這個命令將建立新的目錄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下面建立兩個新目錄,名字為“Zend”和“TSRM”]
./buildcon
這就是全部的安裝過程。運行buildconf將建立標準的configure指令碼,這個指令碼可以用來設定PHP選項。在預設安裝中,PEAR將自動安裝到/usr/local/lib/php下。但是,你也可以手工構造各個檔案,方法是:以超級使用者身份進入,轉到php4/pear目錄,執行make install-su。
除此之外,你還應該把PEAR根目錄加入到php.ini檔案的include_path。預設的目錄應該是/usr/local/lib/php,但如果你手工修改了選項,它可能在其他位置。
四、擷取協助
PEAR的包涵蓋了從資料庫抽象層到輸出緩衝系統的方方面面,因此PEAR遠遠不止是一個簡單的庫——它是一種編寫整潔、可移植代碼的新標準。對於PEAR新手來說,最重要的事情之一就是閱讀PHP手冊中出版的編碼通訊協定。下面是幾個獲得PEAR協助資訊的地方:
尋找PEAR-DEV或PEAR-GENERAL,尋求問題的答案。
查閱隨同PEAR原始碼提供的單元測試指令碼。這些指令碼的位置在PHP CVS原始碼所在目錄之下。例如,在我這裡,它是/home/jpm/php4/pear/DB/tests/。
通讀Tomas Cox優秀的PEAR::DB指南。
到目前為止,PEAR的真面目尚未完全顯露在世人眼前。但是,我希望本文已經成功地為你勾勒了它的大致面貌。
好好享受吧!