LAMP:經典開源Web堆疊
LAMP = Linux + Apache + MySQL + PHP/Perl/Python。這四大開源組件構成最普及的 Web 開發平台,特點:
- 零授權成本,社群支援龐大
- 組件間相容性經年累月優化,幾乎所有 Linux 發行版預裝
- 支撐全球 70%+ 網站流量,與 J2EE、.NET 形成三足鼎立
- Windows 環境對應 WAMP(如 XAMPP、WampServer)
OOP:面向對象程式設計三大支柱
| 特性 | 核心內涵 | 效益 |
| 封裝 | 隱藏內部實作,透過介面互動 | 降低耦合、防止誤用、易維護 |
| 繼承 | 子類復用/擴展父類邏輯 | 程式碼復用、結構清晰、多態基礎 |
| 多態 | 同一介面對不同物件有不同行為 | 彈性擴充、符合開放封閉原則 |
PHP 5 完整實作以上特性,並新增介面、抽象類、最終類/方法、魔術方法、型別提示等企業級特性。
MVC:關注點分離架構模式
Model(模型)
- 封裝業務邏輯與資料存取
- 回傳格式中立資料(陣列/物件)
- 單一職責:一個模型對應一個業務實體
View(視圖)
- 負責呈現:HTML、JSON、XML、PDF...
- 不含業務邏輯,僅做資料綁定與顯示
- 可對應多種輸出格式(響應式/AMP/API)
Controller(控制器)
- 接收請求、協調模型與視圖
- 不直接輸出、不處理資料細節
- 薄控制器原則:業務邏輯下沉至 Service/模型層
流程:請求 → 控制器 → 模型處理 → 回傳資料 → 控制器選視圖 → 渲染輸出
CRUD:資料操作四大原子操作
- Create(新增):`INSERT` / `add()` / `save()`
- Read(讀取):`SELECT` / `find()` / `select()`
- Update(更新):`UPDATE` / `save()` / `update()`
- Delete(刪除):`DELETE` / `delete()` / `destroy()`
框架通常封裝為 Model 方法,ThinkPHP 用 `add/save/select/delete`,Laravel Eloquent 用 `create/find/save/delete`。
單一入口:統一請求分發
所有 HTTP 請求導向單一 `index.php`(透過 Nginx/Apache Rewrite),優點:
- 集中初始化(自動載入、配置、Session、權限)
- 統一異常處理、日誌、效能監控
- URL 美觀化(`/user/profile` 而非 `user.php?act=profile`)
- 不會造成效能瓶頸(PHP-FPM 工作者進程池化處理)
ORM:物件關聯映射橋樑
解決 物件導向(記憶體) 與 關聯式資料庫(磁碟) 的阻抗失配:
- 物件有繼承、多態、引用;資料表只有外鍵、連接
- ORM 以中介軟體形式,自動映射類↔表、屬性↔欄位、關聯↔JOIN
- 主流實作:Doctrine (Data Mapper)、Eloquent (Active Record)、Propel
結語
掌握這六大核心概念,是理解任何 PHP 框架(Laravel、Symfony、ThinkPHP、CodeIgniter...)設計哲學與原始碼的鑰匙。下一篇將實戰剖析路由分發、依賴注入、中介軟體管線等進階機制。