Composer可通过配置scripts字段在事件前后执行自定义脚本,如post-install-cmd、post-update-cmd等,支持运行shell命令或调用PHP静态方法,结合autoload可复用脚本类,实现安装、更新后的自动任务处理,提升开发自动化效率。

Composer 允许你在安装、更新或卸载依赖时自动执行自定义脚本,通过在 composer.json 中配置 scripts 字段实现。你可以在事件发生前后运行 PHP 脚本或 shell 命令。
Composer 提供多个生命周期事件,你可以绑定脚本到这些事件:
编辑 composer.json 文件,在 scripts 字段中添加对应事件和命令。
{
"scripts": {
"post-install-cmd": [
"echo '依赖已安装,正在处理后续任务...'",
"php generate-config.php"
],
"post-update-cmd": [
"echo '依赖已更新'",
"php clear-cache.php"
]
}
}
也可以调用类中的静态方法:
{
"scripts": {
"post-install-cmd": [
"My\Script::runPostInstall"
]
}
}
确保该类能被自动加载,并且方法为 static。
创建一个 PHP 类来集中管理脚本逻辑:
<?php
// scripts/Script.php
namespace My;
use ComposerScriptEvent;
class Script
{
public static function runPostInstall(Event $event)
{
$io = $event->getIO();
$io->write("<info>执行 post-install 自定义操作...</info>");
// 可在此执行备份、生成配置、清理缓存等
}
public static function clearCache(Event $event)
{
$io->write("清除应用缓存...");
// exec('rm -rf cache/*');
}
}
然后在 composer.json 中引用:
{
"autoload": {
"psr-4": { "My\": "scripts/" }
},
"scripts": {
"post-install-cmd": [
"My\Script::runPostInstall",
"My\Script::clearCache"
]
}
}
脚本顺序按配置数组顺序执行。如果某脚本返回非零状态码,Composer 会中断后续操作。调试时可用 composer install --verbose 查看详细输出。
基本上就这些,合理使用脚本能极大提升开发自动化程度。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号