清理 laravel 缓存需依次执行 php artisan config:clear、cache:clear、view:clear、route:clear 四条命令,缺一不可;opcache 需设 revalidate_freq=0 或调用 opcache_reset();composer 须运行 composer dump-autoload;apcu/redis 用户缓存需单独清除。

DW(Dreamweaver)本身不管理PHP缓存——它只是代码编辑器,所有缓存都存在于PHP运行环境、框架或Web服务器中。改了代码没生效?不是DW的问题,是缓存没清对地方。
清理 Laravel 框架缓存必须按顺序跑四条 Artisan 命令
很多人只执行 php artisan config:clear,结果路由还是旧的、视图没更新。Laravel 的缓存分层明确,漏掉任一环都会“看似清了实则没清”:
-
php artisan config:clear:清除bootstrap/cache/config.php,但不影响已加载进内存的配置 -
php artisan cache:clear:清空storage/framework/cache/下的数据缓存(不含视图和路由) -
php artisan view:clear:删除storage/framework/views/中编译后的模板文件 -
php artisan route:clear:重建storage/framework/cache/routes-v7.php(Laravel 9+ 路由缓存格式已变)
注意:php artisan optimize:clear 在 Laravel 9+ 已被移除,不能替代以上四条;如果 storage/framework/cache/data/ 存在且非空,建议手动 rm -rf storage/framework/cache/*——某些包(如 Spatie Laravel-Permission)会绕过 Artisan 直接写这里。
OPcache 不重启服务 ≠ 清干净
本地用 XAMPP/MAMP/Docker,点“重启 Apache”经常无效:PHP-FPM 进程可能没重启,OPcache 字节码还在内存里跑着。现象是改了 .php 文件,phpinfo() 显示 OPcache 启用,但页面就是不更新。
立即学习“PHP免费学习笔记(深入)”;
- 先确认 OPcache 真启用了:
php -i | grep opcache看opcache.enable和opcache.revalidate_freq - 开发时建议设
opcache.revalidate_freq=0(每次请求都校验文件时间戳),避免反复手动清 - 临时清缓存:建个
opcache-reset.php,内容仅一行opcache_reset();,浏览器访问后立即删掉该文件——别留着,有安全风险
Windows 下 XAMPP 控制面板里“Restart”Apache,有时 PHP 模块根本没重载,得点“Stop All”再“Start All”才真正重启整个栈。
Composer 自动加载缓存也要重生成
改了 composer.json 或加了新类,但 Class not found?大概率是 Composer 的自动加载映射没更新。这不是框架缓存,是 Composer 自己生成的静态映射表:
-
vendor/composer/autoload_classmap.php:全量类路径映射,增删类后必须刷新 -
vendor/composer/autoload_static.php:Laravel 8+ 后默认启用的高性能静态加载器 - 正确操作是:
composer dump-autoload(开发时可加-o参数优化)
别信“composer update --no-scripts”,它跳过 autoload 重生成步骤;也别手动删 vendor/autoload.php——它只是入口文件,删了项目直接崩。
别忘了 APCu 和 Redis 这类用户级缓存
如果你在代码里用了 apcu_store() 或 Cache::store('redis')->put(),Artisan 命令和 OPcache 重置都管不到它们。现象是数据库数据明明改了,页面上还是旧值。
- APCu 清空:
apcu_clear_cache()(清用户缓存)或apcu_clear_cache('user');不推荐清系统缓存('system'),可能影响其他扩展 - Redis 清空:
redis-cli FLUSHDB(当前库)或FLUSHALL(全部库),别在生产环境乱用 - 检查是否启用:
php -m | grep -E 'apcu|redis',没输出说明扩展根本没装
最容易被忽略的是:有些项目把配置缓存到 APCu(比如 config('app.name') 结果被长期缓存),这时光清 Laravel 配置文件没用,得连 APCu 一起清。











