整理自實戰專案的 ThinkPHP 開發精華技巧,涵蓋架構設計、模板優化、路由偽靜態、效能調優等面向,助你寫出更優雅、可維護的程式碼。
CommonAction、CommonModel 封裝共用邏輯(權限、日誌、資料驗證),所有控制器/模型繼承之,避免重複代碼。$this->assign() 參數過多時,改用陣列一次指派:$this->assign(array('title'=>$title,'list'=>$list,'page'=>$page))。<volist name=":fun('arg')" id="vo">{$vo.name}</volist><include file="Public:header" /> 拆分頭部、導航、頁尾;被包含檔案需包含完整 HTML 結構(<head>、meta、CSS/JS 引入)。_before_方法名():在特定動作執行前自動執行邏輯(如編輯頁面預載資料),無需在每個動作重複呼叫。$this->getActionName() 取得控制器名,ACTION_NAME 常數取得動作名,配合基底類別實現通用邏輯(如導航高亮、操作日誌)。URL_ROUTER_ON、URL_ROUTE_RULES 將動態 URL 轉為靜態化路徑(/article/123.html),利 SEO 且隱藏參數。ThinkPHP/Lib/Core/)可直接在專案中引用或覆寫;精簡不需的核心檔案可減少載入開銷。Lib/Vendor/ 或 Lib/ORG/,引入前加 @ 抑制警告(@vendor('ClassName')),便於版本管理與部署。Extend/Function/extend.php:框架內建大量工具函式(字串、陣列、日期、驗證等),於入口檔或基底類別 __construct 載入:require EXTEND_PATH . 'Function/extend.php';。route 資料表,啟動時動態載入,支援後台視覺化管理。TMPL_VAR_IDENTIFY、TMPL_STRIP_SPACE 優化編譯輸出。APP_DEBUG=true 時,頁面底部顯示 SQL 日誌;生產環境關閉。S()、F()、R() 搭配 Redis/Memcached,針對熱點資料(分類、配置、靜態頁)設定快取。原文出處:尛雷博客