記錄 Laravel 5 學習過程中的幾個高頻實戰技巧,涵蓋運行時動態切換緩存引擎、Facade 門面別名關係、Linux 下 Storage 目錄權限問題的解決方案,持續更新中。
利用 Config::set() 可在請求生命週期內臨時修改緩存默認驅動,無需修改配置文件:
Config::set('cache.default', 'redis');
var_dump(Config::get('cache.default')); // redis
Config::set('cache.default', 'memcached');
var_dump(Config::get('cache.default')); // memcached
適用於多租戶、A/B 測試等場景下根據業務邏輯動態選擇緩存後端。
Illuminate\Support\Facades 門面別名use Illuminate\Support\Facades\Cache; 與配置 aliases 中的 'Cache' => 'Illuminate\Support\Facades\Cache' 效果等同,前者為具體類導入,後者為全局別名,按團隊規範選擇即可。
常見症狀:storage/logs、storage/framework 無法寫入。解決步驟:
# 1. 將 storage 目錄擁有者改為 Web 服務器用戶(以 nginx 為例)
chown -R www:www storage
# 2. 若仍失敗,清理編譯緩存
php artisan cache:clear
# 3. 確保目錄可寫權限(775 或 755 視 umask 而定)
find storage -type d -exec chmod 775 {} \;
find storage -type f -exec chmod 664 {} \;
關鍵點:Web 進程用戶必須對 storage 及其子目錄擁有寫入權限,cache:clear 可清除舊的編譯文件避免權限殘留。
更多實戰技巧持續補充中……