如何让composer在安装或更新后自动清除缓存

27次阅读

答案:通过配置composer.json的scripts,可实现安装或更新后自动清缓存。1. 使用post-install-cmd和post-update-cmd执行artisan命令;2. 可加环境判断避免生产环境频繁清理;3. 复杂逻辑可用自定义PHP或Shell脚本;4. 确保脚本有执行权限。

如何让composer在安装或更新后自动清除缓存

Composer 本身不会自动清除缓存,但你可以通过配置 scripts 在安装或更新完成后执行清空缓存的操作。这在 PHP 框架(如 Laravel、Symfony)开发中很常见,因为代码变动后缓存可能失效。

1. 使用 Composer 的 post-install-cmd 和 post-update-cmd

你可以在 composer.json 文件中添加脚本,在每次 composer installcomposer update 执行后自动运行清除缓存命令。

注意:以下示例以 Laravel 框架的 Artisan 命令为例,其他项目请替换为对应命令。

编辑你的 composer.json,加入:

"scripts": {     "post-install-cmd": [         "php artisan cache:clear",         "php artisan config:clear",         "php artisan route:clear",         "php artisan view:clear"     ],     "post-update-cmd": [         "php artisan cache:clear",         "php artisan config:clear",         "php artisan route:clear",         "php artisan view:clear"     ] }

这样,每次运行 composer installcomposer update 后,这些缓存清理命令会自动执行。

2. 针对不同环境设置条件判断(可选)

如果你不希望在生产环境频繁清缓存影响性能,可以加个简单的判断:

"scripts": {     "post-update-cmd": [         "@php -r "if (file_exists('.env')) { echo "Clearing development cache...n"; system('php artisan optimize:clear'); }""     ] }

这个例子通过检查是否存在 .env 文件来判断是否为开发环境,再决定是否执行清理。

如何让composer在安装或更新后自动清除缓存

存了个图

视频图片解析/字幕/剪辑,视频高清保存/图片源图提取

如何让composer在安装或更新后自动清除缓存17

查看详情 如何让composer在安装或更新后自动清除缓存

3. 自定义脚本文件(适合复杂逻辑)

如果清理逻辑较复杂,可以把命令写进一个 PHP 或 Shell 脚本中,然后在 Composer 脚本中调用。

例如创建一个 scripts/clear-cache.php

<?php echo "Clearing application cache... "; exec('php artisan cache:clear'); exec('php artisan config:clear'); // 可扩展更多逻辑

然后在 composer.json 中引用:

"scripts": {     "post-update-cmd": [         "php scripts/clear-cache.php"     ] }

4. 确保脚本可执行(Linux/macOS)

如果你使用 Shell 脚本,记得赋予执行权限:

chmod +x scripts/clear-cache.sh

基本上就这些。只要把清缓存的命令绑定到 Composer 的钩子上,就能实现自动化。关键是根据你的项目类型选择合适的命令和触发时机。

以上就是如何让composer php linux laravel js json app mac macos 开发环境 php symfony laravel composer json macos linux 自动化

composer php linux laravel js json app mac macos 开发环境 php symfony laravel composer json macos linux 自动化

text=ZqhQzanResources