Freenode #php 頻道常見新手被回應:「RTFM(去讀該死的手冊)」、「我們不是你的私人導師」。這聽起來刺耳,實則揭示了核心真理:PHP 知識體系龐大且持續演進,唯有主動學習、深入原理、建立體系,才能從「能跑的代碼」進化為「優雅、安全、可維護的工程成果」。
array_column、array_reduce、glob、stream_context_create、password_hash/verify……無數輪子早已內建mysql_*、ereg、create_function、each 等已棄用/移除函數,手冊標註最明確| 專案 | 學習重點 | 難度 |
|---|---|---|
| Laravel Framework | 服務容器、門面、中介軟體、Eloquent 實作、排程、隊列 | ★★★★☆ |
| Symfony Components | HTTP Kernel、Routing、DependencyInjection、EventDispatcher、Console | ★★★★★ |
| PHPUnit | 測試框架核心、斷言、資料提供者、擴充機制 | ★★★☆☆ |
| League Packages (Flysystem, OAuth2, Glide...) | 單一職責、介面導向、現代 PHP 規範實踐 | ★★★☆☆ |
| Composer | 依賴解析、自動載入、腳本、插件架構 | ★★★★☆ |
composer install && php vendor/bin/phpunit,理解專案結構與測試覆蓋public/index.php、bin/console)開始,追蹤請求生命週期框架不只是工具,更是「最佳實踐的固化」。選一個(推薦 Laravel 或 Symfony)做到:
| 環節 | 工具鏈推薦 | 核心價值 |
|---|---|---|
| 依賴管理 | Composer + 私有倉庫 | 版本鎖定、自動載入、腳本自動化 |
| 代碼風格 | PHP-CS-Fixer (PSR-12) + Laravel Pint | 團隊零爭辯、CI 強制統一 |
| 靜態分析 | PHPStan (Level 8+) / Psalm | 編譯期發現 80%+ 潛在 Bug |
| 測試策略 | Pest (單元/功能) + PHPUnit (基礎) + ParaTest (並行) | 重構信心、文檔化行為、CI 門禁 |
| CI/CD | GitHub Actions / GitLab CI | 每次推送自動:風格檢查、靜態分析、測試、構建、部署 |
| 部署 | Deployer / Laravel Forge / Vapor | 零停機、原子部署、快速回滾 |