本文目录导读:

Laravel 的优化命令主要通过缓存配置、合并类文件等方式提升应用性能,以下是完整的优化命令及其作用解析:
核心优化命令
php artisan config:cache
作用:将所有的配置文件合并并缓存到一个文件中。
# 执行后生成 bootstrap/cache/config.php php artisan config:cache
做了什么:
- 读取
config/目录下所有配置文件 - 将所有配置合并成一个数组
- 序列化保存到
bootstrap/cache/config.php - 后续请求不再逐个加载配置文件,直接读取缓存
注意事项:修改配置后需重新执行此命令,否则配置不生效。
php artisan route:cache
作用:将路由缓存到一个文件。
# 生成 bootstrap/cache/routes-v7.php php artisan route:cache
做了什么:
- 扫描所有路由文件
- 将路由规则编译并序列化
- 缓存后路由匹配速度大幅提升(尤其适合路由较多的项目)
注意事项:
- 不适用于闭包路由(
Route::get('/', function() {})) - 修改路由后需重新执行
php artisan view:cache
作用:预编译所有 Blade 模板。
# 编译到 storage/framework/views/ php artisan view:cache
做了什么:
- 扫描
resources/views/下所有.blade.php文件 - 将每个模板编译成 PHP 文件(默认存于
storage/framework/views) - 避免首次访问时实时编译的延迟
php artisan event:cache
作用:缓存事件监听器映射。
# 生成 bootstrap/cache/events.php php artisan event:cache
做了什么:
- 扫描所有
EventServiceProvider中的事件监听器 - 缓存事件与监听器的对应关系
- 加速事件分发的性能
php artisan optimize
作用:一键执行多个优化命令。
php artisan optimize # 等价于:config:cache + route:cache + event:cache
可选参数:
php artisan optimize --force # 忽略环境检查强制执行(生产环境建议) php artisan optimize:clear # 清除上述所有缓存
其他相关命令
php artisan package:discover
作用:重新扫描并缓存所有 composer 包的服务提供者。
# 生成 bootstrap/cache/packages.php php artisan package:discover
php artisan optimize:clear
作用:清除所有优化缓存(与 optimize 相反)。
php artisan optimize:clear # 等价于:config:clear + route:clear + view:clear + event:clear + compiled:clear
生产环境推荐组合命令
# 一键部署脚本(用于上线) php artisan config:cache php artisan route:cache php artisan view:cache php artisan event:cache php artisan optimize --force composer install --optimize-autoloader --no-dev
各命令性能对比
| 命令 | 缓存目标 | 效果 | 适用场景 |
|---|---|---|---|
config:cache |
配置数组 | 减少 IO 读取 | 配置多且稳定 |
route:cache |
路由规则 | 加快路由匹配 | 路由数量多 |
view:cache |
Blade 编译 | 消除模板编译开销 | 模板复杂或量大 |
event:cache |
事件映射 | 加速事件分发 | 事件监听器多 |
optimize |
综合 | 全面优化 | 生产环境 |
注意事项与注意事项
⚠️ 必须在生产环境使用
- 本地开发时执行,会导致配置/路由修改需要额外清理
- 部署后每次代码更新都必须重新执行
⚠️ 闭包路由问题
// 以下写法会导致 route:cache 失败
Route::get('/test', function() {
return 'ok';
});
⚠️ 环境变量问题
config:cache后,.env文件变更不再生效(除非清除缓存)- 建议在部署脚本中确保
.env正确后再执行
实际操作示例
# 服务器上部署步骤 cd /var/www/myproject # 确保依赖安装 composer install --optimize-autoloader --no-dev # 执行优化 php artisan config:cache php artisan route:cache php artisan view:cache php artisan event:cache php artisan optimize --force # 重启 PHP-FPM(如有必要) sudo systemctl restart php8.2-fpm
缓存清理命令速查
| 命令 | |
|---|---|
php artisan config:clear |
配置缓存 |
php artisan route:clear |
路由缓存 |
php artisan view:clear |
模板缓存 |
php artisan event:clear |
事件缓存 |
php artisan optimize:clear |
全部清理 |
composer dump-autoload |
自动加载缓存 |
这些优化命令通过减少文件读取和内存中预编译来提升性能,在生产环境对并发响应有显著提升效果,但要注意在部署流程中正确执行时机,避免缓存过期导致的问题。