Composer脚本是将shell命令、PHP脚本或Composer命令封装为可复用别名,通过composer run-script或简写composer xxx触发;支持数组顺序执行、内置别名引用、事件钩子自动执行及跨平台PHP脚本替代。

在 composer.json 的 scripts 段中定义自定义命令,本质是把 shell 命令、PHP 脚本或 Composer 命令封装成可复用的别名,通过 composer run-script xxx 或简写 composer xxx 触发。
在 composer.json 的 "scripts" 对象里添加键值对,键是命令名(如 "test"),值是待执行的命令字符串或数组:
"test": "phpunit"
"test": ["@clear-cache", "phpunit --colors=always"]
@dev、@prod,也可引用其他自定义脚本:"clear-cache": "rm -rf var/cache/*"
rm)Composer 脚本不仅可手动运行,还能绑定到生命周期事件,例如:
"post-install-cmd":运行 composer install 后触发"pre-autoload-dump":生成自动加载文件前执行"post-update-cmd":运行 composer update 后触发这些钩子会自动执行,无需手动调用;多个脚本可用数组定义,顺序执行。
定义好后,有三种常用执行方式:
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统
24
composer run-script test —— 显式调用,最清晰composer test —— 简写形式(Composer 2.2+ 支持,要求脚本名不含连字符或特殊字符)composer run-script test --no-ansi --verbose —— 加参数控制输出行为注意:如果脚本名和 Composer 原生命令冲突(比如叫 "install"),必须用完整 run-script 形式,否则会执行原生命令。
脚本出错时,Composer 默认只显示返回码。开启调试更方便定位问题:
--verbose 查看完整命令和输出--no-interaction 避免交互式命令卡住 CI 流程rm、mkdir -p 等 bash 特有命令,改用 php -r "exec('rd /s /q cache');" 或专用 PHP 脚本$COMPOSER_HOME、$PWD 等,但不要依赖未声明的自定义变量(不会自动注入)基本上就这些。脚本能力不复杂但容易忽略细节,合理利用能显著简化日常开发和部署流程。
以上就是如何在 composer.json 的 scripts 中定义并执行自定义命令?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号