ThinkPHP 支援 CLI 模式,讓我們能將常駐腳本、定時任務以命令列方式執行,避免 Web 請求超時限制。本文說明如何啟用 CLI、建立獨立入口、編寫排程腳本與常見問題排查。
在入口檔案(如 index.php)頂部定義常數:
define('MODE_NAME', 'cli'); // 部分版本為 THINK_MODE
建議另建 index_cli.php 作為 CLI 專用入口,避免影響正常 Web 訪問。
在 Lib/Action/CrondAction.class.php 新增 test 方法:
class CrondAction extends Action {
public function test() {
// 具體業務邏輯,如資料同步、報表生成等
echo "Crond test executed at " . date('Y-m-d H:i:s') . "\n";
}
}
# 每分鐘執行一次測試 * * * * * /usr/bin/php /home/nginx/html/pet/index_cli.php Crond/test
getLastSql() 直接在資料庫執行除錯。Example/RBAC 目錄。flock)防止並發執行。善用 CLI 模式與系統排程,能讓 ThinkPHP 專案輕鬆處理後台批次作業。