PHP 生態精選 20 大常用類庫分類匯總(經典回顧與現代替代)
本文整理自早期 PHP 社區經典推薦,涵蓋圖表繪製、RSS 解析、縮略圖生成、支付集成、OpenID、數據庫 ORM、PDF/Excel 處理、郵件發送、單元測試九大領域。註:部分庫已停止維護,文末附現代 Composer 生態替代方案。
📊 圖表繪製庫
| 庫 | 特點 | 狀態 | 現代替代 |
| pChart | 功能豐富的統計圖表庫,支援 GD 渲染 | 停更 | Chart.js (JS)、ECharts (JS)、PHP-Chart (新) |
| Libchart | 簡單易用的條形/餅圖/線圖生成 | 停更 | 同上 |
| JpGraph | 面向對象、專業級圖表,商業項目需授權 | 維護中 | 同上 |
| Open Flash Chart | 基於 Flash 渲染,已過時 | 廢棄 | Chart.js、ApexCharts (JS) |
趨勢:現代圖表渲染前端化(JS 库),PHP 僅提供 JSON 數據 API。
📡 RSS/Atom 解析
| 庫 | 特點 | 現代替代 |
| MagpieRSS | 經典 RSS 解析器,簡單但年久失修 | SimplePie、FeedIo |
| SimplePie | 快速、易用、支援 RSS/Atom、緩存機制完善 | 首選 (composer require simplepie/simplepie) |
🖼️ 縮略圖生成
| 庫 | 特點 | 現代替代 |
| phpThumb | 功能極強:縮放、裁剪、濾鏡、水印、格式轉換 | Intervention/Image、Imagine、Glide |
💳 支付集成
| 庫 | 支援網關 | 現代替代 |
| PHP Payment Library | PayPal、Authorize.net、2Checkout | Omnipay (統一抽象層)、PayPal PHP SDK、Stripe PHP |
🔐 OpenID
| 庫 | 說明 | 現代替代 |
| PHP-OpenID | OpenID 1.x/2.0 客戶端實現 | OAuth 2.0 / OpenID Connect:League/OAuth2-Client、Firebase PHP-JWT |
🗄️ 數據庫抽象 / ORM
| 庫 | 類型 | 特點 | 現代替代 |
| ADOdb | 抽象層 | 老牌、支援多種數據庫、Active Record | Doctrine DBAL、Cycle ORM |
| Doctrine | ORM + DBAL | 企業級、DQL、映射豐富、Symfony 標配 | 首選 ORM (composer require doctrine/orm) |
| Propel | ORM | 代碼生成、查詢構建器、PHP5 時代主流 | Doctrine、Eloquent (Laravel) |
| Outlet | ORM | 輕量、註解映射 | Atlas.Orm、CakePHP ORM |
📄 PDF 生成
| 庫 | 特點 | 現代替代 |
| FPDF | 純 PHP、無依賴、API 底層 | TCPDF (功能更全)、Dompdf (HTML 轉 PDF)、Snappy (wkhtmltopdf 封裝) |
📊 Excel 處理
| 庫 | 功能 | 現代替代 |
| php-excel | 簡單生成 .xls | PhpSpreadsheet (繼承 PHPExcel、支援 .xlsx/.ods/.csv) |
| PHP Excel Reader | 讀取 .xls 數據 | PhpSpreadsheet 統一讀寫 |
📧 郵件發送
| 庫 | 特點 | 現代替代 |
| Swift Mailer | 功能豐富、插件化、Symfony 郵件組件前身 | Symfony Mailer (Swift Mailer 繼任者)、PHPMailer (仍活躍) |
| PHPMailer | 最流行、SMTP/附件/HTML/內嵌圖片完美支援 | 仍推薦 (composer require phpmailer/phpmailer) |
🧪 單元測試
| 框架 | 特點 | 現代地位 |
| SimpleTest | 單元+Web 測試、內建斷言、PHP4 風格 | 停更,歷史參考 |
| PHPUnit | xUnit 家族、標準化、生態最豐富、CI/CD 標配 | 事實標準 (composer require --dev phpunit/phpunit) |
📦 現代 Composer 生態「必裝清單」 (2024 版)
# 核心工具
composer require symfony/console symfony/http-client symfony/cache
composer require league/flysystem # 文件系統抽象
composer require ramsey/uuid # UUID 生成
composer require carbon/carbon # 日期時間處理
composer require vlucas/phpdotenv # 環境變量
# HTTP/API
composer require guzzlehttp/guzzle
composer require php-http/client-common
# 數據庫/ORM
composer require doctrine/orm doctrine/migrations
# 或 Laravel 專用
composer require illuminate/database illuminate/events
# 圖片處理
composer require intervention/image
# PDF
composer require tecnickcom/tcpdf
# 或 HTML 轉 PDF
composer require barryvdh/laravel-snappy # 需 wkhtmltopdf
# Excel
composer require phpoffice/phpspreadsheet
# 郵件
composer require phpmailer/phpmailer
# 或 Symfony
composer require symfony/mailer symfony/mime
# 測試
composer require --dev phpunit/phpunit mockery/mockery
# 開發工具
composer require --dev squizlabs/php_codesniffer phpstan/phpstan
選型原則
- 優先 Composer 包:版本管理、自動加載、依賴解析
- 檢查維護狀態:GitHub 近期提交、Issue 響應、PHP 版本兼容
- 最小依賴原則:功能單一、無框架綁定的庫更易複用
- 社區活躍度:Stars、Forks、下載量、文檔完善度
- 避免重複造輪子:常見需求(認證、支付、上傳、隊列)均有成熟方案