前言
良好的類庫能讓開發事半功倍。本文精選 20 個在實戰專案中驗證過、社區活躍度高的 PHP 類庫,按功能分類整理,附上 GitHub/Packagist 連結與適用場景建議,助你構建現代化 PHP 技術棧。
一、圖表視覺化
| 類庫 | 特色 | 安裝/連結 |
| pChart | 純 PHP 繪製統計圖(長條、折線、餅圖、雷達),支援 GD、抗鋸齒、陰影、圖例,輸出 PNG/JPG。 | GitHub / `composer require pchart/pchart` |
| Libchart | 輕量級,API 簡潔,適合快速生成簡單統計圖。 | GitHub |
| JpGraph | 老牌面向物件圖表庫,功能極豐富(Gantt、風險圖、地圖),商業專案需購買授權。 | 官網 |
| Open Flash Chart | 基於 Flash 的互動圖表(已過時,現代專案建議改用 Chart.js/ECharts 等 JS 方案)。 | 歷史參考 |
現代建議:後端僅提供 JSON 資料,前端用 Chart.js、ECharts、ApexCharts 渲染,分離關注點、互動體驗更好。
二、RSS/Atom 解析
| 類庫 | 特色 | 安裝/連結 |
| SimplePie | PHP 5.3+,極快、容錯率高、支援 RSS 0.91/1.0/2.0、Atom 0.3/1.0、自動發現、快取、過濾清理。 | `composer require simplepie/simplepie` 官網 |
| MagpieRSS | 早期經典,現已停止維護,不建議新專案使用。 | 歷史參考 |
三、縮圖/圖片處理
| 類庫 | 特色 | 安裝/連結 |
| Intervention Image | Laravel 官方推薦,流暢介面、支援 GD/Imagick、縮放、裁切、水印、濾鏡、Base64 編碼、PSR-2 規範。 | `composer require intervention/image` 官網 |
| phpThumb | 功能極強(縮圖、裁切、旋轉、濾鏡、輸出格式轉換),但代碼老舊、配置複雜,適合存量專案維護。 | GitHub |
四、支付整合
| 類庫 | 特色 | 安裝/連結 |
| Omnipay | 多網關統一介面(PayPal、Stripe、Authorize.net、2Checkout、支付寶、微信支付等 100+),PSR-4、可擴展、單元測試完善。 | `composer require omnipay/omnipay` GitHub |
| Payum | 專注支付流程建模(捕獲、退款、通知、Token),支援 Symfony/Laravel Bundle,適合複雜支付業務。 | `composer require payum/payum` 官網 |
五、OpenID / OAuth 客戶端
| 類庫 | 特色 | 安裝/連結 |
| Socialite (Laravel) | Laravel 官方 OAuth 客戶端,支援 GitHub、Google、Facebook、微信、微博等,流暢 API:`Socialite::driver('github')->user()`。 | `composer require laravel/socialite` 文檔 |
| League OAuth2 Client | 框架無關通用 OAuth 2.0 客戶端,支援自定義 Provider,符合 PSR-7/17/18。 | `composer require league/oauth2-client` GitHub |
| OpenID Connect PHP | 專注 OpenID Connect 核心流程(Authorization Code、Implicit、Hybrid),JWT 驗證、Discovery、UserInfo。 | `composer require openid-connect/php` GitHub |
六、資料庫抽象 / ORM
| 類庫 | 定位 | 特色 | 安裝/連結 |
| Doctrine ORM | 全功能 ORM | 資料映射器模式、DQL 查詢語言、遷移、事件、快取、支援 MySQL/PostgreSQL/SQLite/Oracle/SQL Server,Symfony/Laravel 深度整合。 | `composer require doctrine/orm` 官網 |
| Eloquent (Laravel) | Active Record | 優雅語法、關聯定義、觀察器、範圍查詢、軟刪除、序列化,Laravel 內建亦可獨立使用。 | `composer require illuminate/database` 文檔 |
| Propel2 | Active Record | XML Schema 定義、代碼生成、查詢物件、行為插件、支援多資料庫。 | `composer require propel/propel` 官網 |
| Atlas.Orm | Mapper | 現代化、無魔法、明確 SQL、不可變實體、PSR-15 中介軟體風格。 | `composer require atlas/orm` 官網 |
| ADOdb | 資料庫抽象層 | 老牌、支援極多資料庫、可移植 SQL、快取、Active Record 可選,適合舊專案遷移。 | `composer require adodb/adodb-php` 官網 |
七、PDF 生成
| 類庫 | 特色 | 安裝/連結 |
| Dompdf | HTML/CSS 轉 PDF,支援 CSS 2.1 大部分屬性、Unicode 字型、大檔案分頁,純 PHP 無外部依賴。 | `composer require dompdf/dompdf` GitHub |
| TCPDF | 功能最全(條碼、二維碼、數位簽章、RTF/HTML 匯入),但 API 繁瑣、效能一般。 | `composer require tecnickcom/tcpdf` 官網 |
| Snappy (wkhtmltopdf) | 呼叫 wkhtmltopdf(WebKit 渲染引擎),CSS/JS 支援最完美,需安裝系統二進位檔。 | `composer require knplabs/snappy` GitHub |
八、Excel/CSV 匯入匯出
| 類庫 | 特色 | 安裝/連結 |
| PhpSpreadsheet | PHPExcel 繼任者,支援 XLSX/XLS/ODS/CSV/HTML/PDF、豐富樣式、公式計算、快取、大檔案串流讀寫。 | `composer require phpoffice/phpspreadsheet` 文檔 |
| Box/Spout | 專注大檔案高效能串流讀寫(XLSX/ODS/CSV),記憶體佔用極低(< 3MB),無公式計算。 | `composer require box/spout` GitHub |
| League/Csv | 純 CSV 處理(RFC 4180),流暢介面、轉換器、驗證器、PSR-7 相容。 | `composer require league/csv` 官網 |
九、郵件發送
| 類庫 | 特色 | 安裝/連結 |
| Symfony Mailer | 現代化、PSR-7/17/18、多傳輸(SMTP、Sendmail、Mailgun、SendGrid、Amazon SES)、Mime 組件支援附件/內嵌圖片/模板。 | `composer require symfony/mailer` 文檔 |
| PHPMailer | 全球最流行、支援 SMTP/POP3/IMAP、HTML/純文字、附件、DKIM、多語言、PHP 5.5+。 | `composer require phpmailer/phpmailer` GitHub |
| Swift Mailer | Symfony Mailer 前身,現進入維護模式,存量專案仍在使用。 | 維護模式 |
十、單元測試框架
| 類庫 | 特色 | 安裝/連結 |
| PHPUnit | 事實標準、xUnit 架構、資料提供者、Mock/Stub、代碼覆蓋率、並行測試、PHP 8.1+。 | `composer require --dev phpunit/phpunit` 官網 |
| Pest | 建立在 PHPUnit 之上、極簡語法、`it()`/`expect()`、並行、架構測試、Laravel 整合極佳。 | `composer require --dev pestphp/pest` 官網 |
| Codeception | 全棧測試(單元、功能、驗收、API)、BDD 風格、模組化、WP/CLI/框架模組。 | `composer require --dev codeception/codeception` 官網 |
總結與選型建議
- 優先選擇 Composer 套件:版本管理、自動載入、依賴解析一站式解決。
- 看維護狀態:GitHub 最近提交、Issue 回應、Release 頻率、PHP 版本相容性。
- 最小依賴原則:功能單一、無框架綁定的類庫更易替換、測試。
- 現代化替代:圖表改前端渲染、RSS 解析用 SimplePie、縮圖用 Intervention Image、支付用 Omnipay、ORM 用 Doctrine/Eloquent、PDF 用 Dompdf/Snappy、Excel 用 PhpSpreadsheet/Spout、郵件用 Symfony Mailer、測試用 PHPUnit/Pest。
將此清單加入書籤,下次專案選型直接對號入座,少走彎路!