3 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
所謂 web 框架就是一個(gè) http 請(qǐng)求框架, 無論多輕量級(jí)的框架, 也會(huì)包括 路由, MVC, html 模板
等功能. 具體到 php 的框架, 就是面對(duì)一次會(huì)話的.
所以按我理解定時(shí)任務(wù)沒法寫在框架里面: 你要寫在哪一層呢? 寫在 Controller 里面? 那不還是得模擬一個(gè)請(qǐng)求出來. 模擬請(qǐng)求對(duì) 負(fù)載均衡, 反向代理, cron 日志查看 等都會(huì)帶來麻煩. 與其自找麻煩, 不如另起一個(gè)項(xiàng)目了.
cron 任務(wù)可以單獨(dú)寫在一個(gè)項(xiàng)目里, 不和 http 請(qǐng)求框架關(guān)聯(lián). 比如就叫 php_cron 項(xiàng)目, 里面就是按照單純的腳本來維護(hù)的. 如果有需要連接數(shù)據(jù)庫等資源的地方, 就統(tǒng)一 include 一個(gè)專用的 php 文件進(jìn)來, 比如 mysql_connect.php . 這樣就相當(dāng)于在這個(gè)項(xiàng)目中單獨(dú)維護(hù)若干個(gè)公共 php 文件即可. 這比硬模擬一個(gè)請(qǐng)求去走框架要省性能, 也清晰的多. 對(duì)于小點(diǎn)的項(xiàng)目, 這樣做就足夠了. 大點(diǎn)的項(xiàng)目得考慮把定時(shí)任務(wù)管理起來.
另外, cron 定時(shí)任務(wù)為什么需要用戶登錄鑒權(quán)? 系統(tǒng)內(nèi)部的定時(shí)任務(wù)為什么還要具體用戶登錄? 即使是為了分角色管理權(quán)限, 也應(yīng)該是在數(shù)據(jù)庫上去設(shè)置具體權(quán)限吧, 覺得不應(yīng)該和登錄系統(tǒng)參合在一起.

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
tp可以寫個(gè)cli入口,假設(shè)為cli.php,然后可以執(zhí)行php cli.php 控制器/方法
- 3 回答
- 0 關(guān)注
- 1238 瀏覽
添加回答
舉報(bào)