Composer scripts可在特定生命周期自动执行任务,如数据库迁移、缓存清理;通过composer.json的"scripts"配置,支持命令行或PHP方法调用,可自定义脚本并通过composer run执行,需注意事件时机与执行上下文。

在 Composer 中,scripts 是一种强大的功能,允许你在特定生命周期事件(如安装、更新、卸载等)触发时自动执行自定义脚本。这些脚本可以是 PHP 脚本、命令行指令或外部程序。
Composer 的 scripts 主要用于自动化项目中的常规任务。典型用途包括:
scripts 定义在项目的 composer.json 文件中,通过 "scripts" 键来配置。每个脚本对应一个事件名,值是一个命令数组。
示例:基本 scripts 配置{
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan migrate --force",
"php artisan config:cache"
],
"pre-update-cmd": [
"echo '即将开始更新依赖'"
]
}
}支持的常用事件包括:
除了命令行语句,你还可以调用 PHP 类的静态方法。这类方法必须接受一个 ComposerScriptEvent 参数。
{
"scripts": {
"post-update-cmd": "App\Console\ComposerScripts::postUpdate"
}
}对应的 PHP 类文件:
namespace AppConsole;
use ComposerScriptEvent;
class ComposerScripts
{
public static function postUpdate(Event $event)
{
echo "依赖已更新,正在执行清理...
";
// 执行一些逻辑,比如删除临时文件
if (is_dir('bootstrap/cache')) {
unlink('bootstrap/cache/config.php');
}
}
}确保该类能被自动加载(通常放在 composer autoload 路径中)。
你可以定义自己的脚本名称,并通过 composer run 来执行。
{
"scripts": {
"clear-cache": [
"php artisan cache:clear",
"php artisan route:clear"
],
"build": [
"@composer install",
"@composer run clear-cache",
"echo '构建完成'"
]
}
}运行方式:
composer run clear-cache
或者链式执行:
composer run build
注意:@composer 可以在脚本中调用其他 Composer 命令。
|| true 忽略错误)-v 参数查看详细输出:composer install -v
基本上就这些。合理使用 Composer scripts 能显著提升项目自动化程度,减少重复操作。关键是根据项目流程设计合适的钩子和命令。不复杂但容易忽略的是事件触发时机和脚本执行上下文。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号