PEAR (PHP Extension and Application Repository) 是 PHP 官方維護的程式碼倉庫與編碼標準,猶如 Perl 的 CPAN。自 PHP 4.0.4 起隨核心釋出,旨在解決 PHP 社群缺乏統一程式碼分享與管理機制的問題。
PEAR 基類與 PEAR_Error 錯誤處理類,支援建構子/解構子模擬、多模式錯誤處理| 規範項目 | 關鍵要求 |
|---|---|
| 縮排 | 4 空格,禁用 Tab;Vim/Emacs 需配置對應設定 |
| 控制結構 | 關鍵字後空一格,完整使用大括號 |
| 函數呼叫 | 函數名與左括號無空格,參數以逗號+空格分隔 |
| 函數定義 | 採用 "one true brace" 風格,可選參數置後,回傳有意義值 |
| 註解 | 類別文件支援 PHPDoc;行內註解用 /* */ 或 //,禁用 # |
| 檔案引入 | 無條件用 require_once,條件用 include_once |
| PHP 標籤 | 統一使用 <?php ?>,確保跨平台相容 |
| 檔案標頭 | 含版權、授權、作者、CVS ID、Vim modeline |
| 常數命名 | 全大寫 + 底線分隔,前綴套用套件/類別名 |
require_once "PEAR.php";
class MyPackage extends PEAR {
// 建構子必須呼叫父類建構子
function MyPackage() {
$this->PEAR();
}
// 解構子命名:_ + 類別名
function _MyPackage() {
// 清理工作:關閉連線、儲存資料等
}
// 自訂錯誤處理(可選)
// class MyError extends PEAR_Error { ... }
}
// 使用範例
$obj = new MyPackage();
if (PEAR::isError($result = $obj->someMethod())) {
echo $result->getMessage();
}
PEAR 提供 5 種錯誤模式:
PEAR_ERROR_RETURN:回傳錯誤物件(預設)PEAR_ERROR_PRINT:列印訊息但繼續執行PEAR_ERROR_TRIGGER:觸發 PHP 錯誤處理器PEAR_ERROR_DIE:列印訊息並終止腳本PEAR_ERROR_CALLBACK:呼叫自訂回呼函數/方法可透過 setErrorHandling() 設定預設模式,raiseError() 便捷拋出錯誤。
PHP 4.0.5 版 PEAR 核心已包含 PHPDoc、Cache、HTML 等優質模組。雖起步較 CPAN 晚,但隨社群投入將持續壯大,推動 PHP 邁向企業級開發標準。