PEAR 是 PHP 官方維護的「標準庫與組件倉庫」,提供可復用代碼包、編碼規範、分發渠道。雖然 Composer 成為現代主流,但 PEAR 仍在大量存量項目、系統級工具、舊版 PHP 環境中廣泛使用。
核心使命
- 提供高質量、可復用 PHP 組件
- 制定 PHP 編碼標準 (PEAR Coding Standards → PSR-1/2 前身)
- 統一包分發、版本管理、依賴解析流程
安裝與驗證
# PHP 安裝時通常自帶 pear 命令 (bin/pear)
pear version
# PEAR Version: 1.10.x
# PHP Version: 8.x
# Zend Engine Version: 4.x
# 檢查 PHP include_path 包含 PEAR 目錄
pear config-get php_dir
# /usr/local/lib/php (Linux) 或 D:\AppServ\php8\pear (Windows)
常用命令速查表
| 命令 | 作用 | 示例 |
pear install <pkg> | 安裝包 | pear install Log |
pear uninstall <pkg> | 卸載包 | pear uninstall Log |
pear upgrade <pkg> | 升級包 | pear upgrade-all |
pear list | 列出本地已安裝包 | |
pear remote-list | 列出遠程可用包 | |
pear info <pkg> | 查看包詳情 | pear info Log |
pear config-show | 顯示所有配置 | |
pear help <cmd> | 命令幫助 | pear help install |
實戰:安裝與使用 Log 包
# 1. 安裝
pear install Log
# 2. 目錄結構生成
# php_dir/Log.php # 主入口
# php_dir/Log/ # 子類 (file, syslog, mail, sqlite, ...)
# doc_dir/Log/ # 文檔、示例
# 3. 代碼中使用
require_once 'Log.php';
$logger = Log::singleton('file', '/var/log/myapp.log', 'MyApp');
$logger->log('Info message', PEAR_LOG_INFO);
$logger->log('Error: DB connection failed', PEAR_LOG_ERR);
// 或使用工廠模式
$logger = &Log::factory('syslog', 'MyApp', 'LOG_USER');
$logger->log('System log entry', PEAR_LOG_NOTICE);
PEAR vs Composer 選型建議
| 維度 | PEAR | Composer |
| 安裝範圍 | 系統級/全局 | 項目級 (vendor/) |
| 依賴解析 | 簡單、扁平 | 強大、遞歸、版本約束 |
| 自動加載 | 需手動 require / include_path | PSR-4 自動生成 autoload.php |
| 包發布門檻 | 官方審核、流程嚴格 | Packagist 開放提交 |
| 現代項目適用性 | 低 (維護模式) | 高 (事實標準) |
推薦常用 PEAR 包 (歷史經典)
- PHPUnit:單元測試框架鼻祖 (現已遷移 Composer)
- PHPDoc:文檔生成工具 (現主流用 phpDocumentor)
- DB / MDB2:資料庫抽象層 (現主流用 PDO/Doctrine DBAL)
- Log:日誌抽象 (現主流用 Monolog)
- HTTP_Request2:HTTP 客戶端 (現主流用 Guzzle)
- Mail / Mail_Mime:郵件構建發送 (現主流用 Symfony Mailer)
- Cache / Cache_Lite:緩存抽象 (現主流用 Symfony Cache / Stash)
- Config:配置文件解析 (INI/XML/PHP/JSON)
- Validate:數據驗證 (Email/URL/信用卡/身份證等)
遷移建議
新項目 直接使用 Composer。存量 PEAR 項目可通過 composer require pear/pear_package (部分包在 Packagist 有鏡像) 或手動將 php_dir 加入 include_path 並編寫 PSR-4 映射過渡。
- 上一篇文章: PHP 入門核心知識體系與 AppServ 一鍵搭建開發環境圖文教程
- 下一篇文章: PHP 實戰練手:從零構建帶後台的小型論壇系統
Copyright ©
程式碼之家 All Rights Reserved