自定义命令脚本通过在composer.json的scripts中定义快捷指令提升开发效率,如clear-cache、deploy和test等命令可简化执行流程;支持通过%param%传递参数或使用环境变量,结合&&和||实现错误处理,还可执行自定义PHP代码并利用Composer API进行复杂操作。

Composer自定义命令脚本,简单来说,就是让你在
composer.json
在
composer.json
scripts
scripts
post-install-cmd
pre-update-cmd
例如:
{
"name": "your-vendor/your-package",
"description": "Your package description",
"type": "library",
"license": "MIT",
"authors": [
{
"name": "Your Name",
"email": "your.email@example.com"
}
],
"require": {
"php": ">=7.4"
},
"scripts": {
"clear-cache": [
"rm -rf var/cache/*",
"echo 'Cache cleared!'"
],
"deploy": [
"@clear-cache",
"composer install --no-dev --optimize-autoloader",
"echo 'Deployment complete!'"
],
"test": "phpunit"
}
}解释一下:
clear-cache
rm -rf var/cache/*
echo 'Cache cleared!'
deploy
clear-cache
@clear-cache
test
phpunit
执行自定义命令,只需在命令行输入:
composer clear-cache composer deploy composer test
是不是方便多了?
在定义 Composer 脚本时,你可能需要传递参数。Composer 提供了一种简单的方式来实现这一点。
例如,假设你有一个脚本需要传递一个环境参数:
{
"scripts": {
"build": "node build.js %env%"
}
}在命令行中,你可以这样运行:
composer build --env=production
%env%
production
--
--
--env=production
另外,你也可以使用环境变量:
{
"scripts": {
"build": "node build.js $ENV_VAR"
}
}这种情况下,
$ENV_VAR
在 Composer 脚本中,错误处理很重要,否则一个脚本的失败可能会导致整个流程中断。Composer 默认情况下,如果脚本中的任何一个命令返回非零退出码,它就会停止执行。
你可以使用
&&
||
&&
||
例如:
{
"scripts": {
"deploy": [
"composer install && echo 'Dependencies installed' || echo 'Failed to install dependencies'",
"php artisan migrate && echo 'Migration successful' || echo 'Migration failed'"
]
}
}在这个例子中,如果
composer install
php artisan migrate
另外,你也可以使用
set -e
{
"scripts": {
"deploy": [
"set -e",
"composer install",
"php artisan migrate"
]
}
}在这个例子中,如果
composer install
php artisan migrate
有时候,简单的 shell 命令无法满足你的需求,你可能需要在 Composer 脚本中执行一些 PHP 代码。 Composer 提供了一种方式来执行自定义 PHP 代码。
首先,创建一个 PHP 脚本,例如
scripts/my-script.php
<?php // scripts/my-script.php echo "Hello from PHP script!\n"; $param = $argv[1] ?? 'default'; // 获取参数 echo "Parameter: " . $param . "\n"; // 执行一些复杂的逻辑
然后,在
composer.json
{
"scripts": {
"my-command": "php scripts/my-script.php"
}
}或者,如果你想传递参数:
{
"scripts": {
"my-command": "php scripts/my-script.php %param%"
}
}运行命令:
composer my-command --param=custom_value
在 PHP 脚本中,你可以使用
$argv
另外,你也可以使用 Composer 提供的 API。 首先,你需要引入 Composer 的 autoloader:
<?php // scripts/my-script.php require __DIR__ . '/../vendor/autoload.php'; use Composer\Factory; use Composer\IO\NullIO; $composer = Factory::create(new NullIO()); $package = $composer->getPackage(); echo "Package name: " . $package->getName() . "\n"; // 执行一些操作
这种方式可以让你访问 Composer 的配置信息,执行更复杂的操作。
以上就是Composer如何自定义命令脚本_在composer.json中创建快捷指令的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号