分類精選:現代 PHP 專案常用庫 (Composer 可安裝)
原文列舉的庫多為早期專案,以下更新為 2024 年仍活躍維護、Composer 可安裝、社群活躍的現代替代方案,並保留經典庫供參考。
1. 圖表視覺化
| 庫 | Composer | 特點 | 適用場景 |
| pChart | pchart/pchart | GD 繪製、支援多種圖表、中文需額外字體 | 伺服器端靜態圖表生成 |
| Chart.js PHP Wrapper | consoletvs/charts | Laravel 整合 Chart.js、前端渲染、互動豐富 | 前後端分離、儀表板 |
| JpGraph | 官網下載 (非 Composer) | 功能極全、商業授權、學習曲線陡 | 複雜科學/工程圖表 |
| SVG 輸出 | picqer/php-barcode-generator 等 | 向量圖、無损縮放、CSS 可控 | 條碼、QR Code、簡單圖表 |
趨勢:複雜圖表首選前端庫 + API 提供資料;伺服器端生成圖片僅用於 PDF/報表嵌入、郵件附件、無 JS 環境。
2. RSS/Atom 解析與生成
| 庫 | Composer | 特點 |
| SimplePie | simplepie/simplepie | 解析 RSS/Atom/JSON Feed、快取、PSR-4、PHP 8+ 支援 |
| FeedIo | feed-io/feed-io | 現代介面、支援讀寫、JSON Feed、PSR-18 HTTP Client |
| MagpieRSS | 已停止維護 (最後更新 2010) | 不建議新專案使用 |
3. 圖片處理與縮圖
| 庫 | Composer | 特點 |
| Intervention Image | intervention/image | GD/Imagick 驅動、鏈式 API、Laravel 整合、支援 WebP/AVIF |
| Imagine | imagine/imagine | OOP 介面、多驅動、濾鏡、縮放、裁剪、旋轉 |
| phpThumb | 原專案老舊 | 建議改用上述兩者 |
4. 支付整合
| 庫 | Composer | 支援閘道 |
| Omnipay | omnipay/omnipay + 閘道包 | PayPal、Stripe、Alipay、WeChat Pay、2Checkout、Authorize.net 等 100+ |
| Payum | payum/payum | 狀態機架構、支援退款/取消/通知、Symfony/Laravel 橋接 |
| Laravel Cashier | laravel/cashier (Stripe/Paddle) | 訂閱計費專用、Webhook 處理、發票生成 |
5. OpenID Connect / OAuth 2.0 / SSO
| 庫 | Composer | 特點 |
| League OAuth2 Client | league/oauth2-client | 通用 OAuth2 客戶端、支援 Google、GitHub、GitLab、Keycloak、Auth0 等 |
| OpenID Connect Client | openid-php/openid-client | 專注 OIDC 規範、ID Token 驗證、JWKS 快取 |
| Firebase PHP JWT | firebase/php-jwt | JWT 編碼/解碼/驗證、支援 RS256/ES256、極輕量 |
6. ORM / 資料庫抽象層
| 庫 | Composer | 類型 | 特點 |
| Doctrine ORM | doctrine/orm | Data Mapper | 功能最全、DQL 查詢語言、遷移工具、Symfony/Laravel 整合 |
| Eloquent (Laravel) | illuminate/database | Active Record | 語法優雅、關聯豐富、獨立使用可脫離 Laravel |
| Cycle ORM | cycle/orm | Data Mapper | 高效能、無註解 (PHP 8 屬性)、支援讀寫分離 |
| Atlas.Orm | atlas/orm | Mapper | 嚴格分離持久化邏輯、無魔術、適合領域驅動設計 |
| ADOdb | adodb/adodb-php | 抽象層 | 老牌、支援超多資料庫、無 ORM 功能 |
7. PDF 生成與操作
| 庫 | Composer | 特點 |
| Dompdf | dompdf/dompdf | HTML/CSS 轉 PDF、支援 UTF-8、中文字體需配置 |
| Snappy (wkhtmltopdf) | knplabs/knp-snappy | WebKit 渲染、CSS/JS 支援最好、需安裝 wkhtmltopdf |
| TCPDF | tecnickcom/tcpdf | 純 PHP、功能極全、程式碼較繁瑣 |
| FPDF | fpdf/fpdf | 輕量、無依賴、僅基本繪圖/文字 |
8. Excel/CSV 讀寫
| 庫 | Composer | 特點 |
| PhpSpreadsheet | phpoffice/phpspreadsheet | PHPExcel 繼任者、支援 XLSX/XLS/CSV/ODS、記憶體優化、大檔案串流 |
| Box/Spout | box/spout | 串流讀寫、極低記憶體、速度快、不支援複雜樣式 |
| FastExcel | rap2hpoutre/fast-excel | Laravel 整合、基於 Spout、極簡 API |
9. 郵件發送
| 庫 | Composer | 特點 |
| Symfony Mailer | symfony/mailer | 現代介面、支援 SMTP/Sendmail/郵件服務商 API、Mime 組件強大 |
| PHPMailer | phpmailer/phpmailer | 老牌、相容性好、SMTP/POP3/IMAP、附件/內嵌圖片/HTML |
| Swift Mailer | 已併入 Symfony Mailer (不再獨立維護) | 遷移至 Symfony Mailer |
10. 單元測試與靜態分析
| 工具 | Composer | 類型 | 特點 |
| PHPUnit | phpunit/phpunit | 單元測試 | 事實標準、資料提供者、Mock、代碼覆蓋率、PHP 8.2+ 支援 |
| Pest | pestphp/pest | 測試框架 | 語法優雅、建立在 PHPUnit 之上、並行測試、架構測試 |
| PHPStan | phpstan/phpstan | 靜態分析 | 發現 Bug、型別檢查、等級 0-9、Laravel/Symfony 擴充 |
| Psalm | vimeo/psalm | 靜態分析 | 型別推論強、死代碼檢測、安全審計 |
| Infection | infection/infection | 突變測試 | 測試品質評估、自動修改代碼驗證測試有效性 |
快速開始:Composer 一鍵安裝核心套件
composer require \
intervention/image \
simplepie/simplepie \
omnipay/omnipay omnipay/paypal omnipay/stripe \
league/oauth2-client \
doctrine/orm \
phpoffice/phpspreadsheet \
symfony/mailer \
phpunit/phpunit phpstan/phpstan --dev
選型建議
- 優先選 Composer 套件:版本管理、自動載入、依賴解析、安全更新。
- 看維護頻率:GitHub 近半年有 Commit/Release、Issue 回應及時。
- 看社群生態:StackOverflow 討論多、教學資源豐富、框架整合好。
- 避免重複造輪子:框架內建功能 (Laravel Queue/Mail/Notification、Symfony Messenger/Mailer) 優先使用。
- 授權相容:MIT/BSD/Apache 2.0 通常安全,GPL/LGPL 需法務確認。