ColaPHP 2.0 Alpha 正式釋出,框架核心體積從 188KB 精簡至 131KB,代碼量減少 30% 且功能不減。此版本著重於「回歸簡單」的設計哲學,主要變革包括:目錄重命名、返回值機制權衡、異常處理策略確立。
Com (Component) 改為 Ext (Extension),語意更清晰:核心 + 擴展。開發初期嘗試統一返回結構化陣列 ['code' => 0, 'data' => xxx],但 PHP 缺乏 Python 的 __bool__ 魔術方法,導致判斷邏輯變繁瑣:
// 原始直觀寫法
if ($obj->foo($bar)) { /* ... */ }
// 結構化陣列強制寫法
$result = $obj->foo($bar);
if (0 === $result['code']) { /* ... */ }
最終採用 折衷方案:成功返回業務值,失敗返回 false,並提供 $obj->error 成員快速獲取錯誤詳情:
if ($obj->foo($bar)) {
// do something
} else {
var_dump($obj->error);
}
此設計兼顧「懶惰程序員」直覺與錯誤資訊完整性,參考 Go 語言多返回值慣例。
1.x 版本大量拋出異常,2.0 曾考慮改為錯誤碼避免使用者被迫 try-catch。經調研 Laruence 等專家觀點,權衡後決定 保持拋出異常:
try-catch 雖顯式,但優於充斥 if-else 的防禦性代碼。ColaPHP 2.0 繼續採用「簡單粗暴直接有效」的異常策略,將控制權交還開發者。
ColaPHP 2.0 經過反複打磨,再次回歸「原本簡單」的初心。專案地址與文檔請關注官方發布管道。