Composer Scripts 是在 composer.json 中定义的自动化钩子,用于在安装、更新等事件前后执行 PHP 函数或命令行脚本,支持闭包、类方法和外部命令,可实现项目初始化、缓存清理等任务,提升开发效率。

Composer Scripts 是 Composer 提供的一个强大功能,允许你在 Composer 执行某些生命周期事件时自动运行自定义脚本。这些脚本可以是 PHP 函数、命令行指令或外部脚本文件,常用于自动化项目初始化、测试、构建、部署等任务。
Composer Scripts 是在 composer.json 文件中通过 "scripts" 字段定义的钩子函数。它们会在特定的 Composer 命令执行前后被触发,例如安装依赖(install)、更新包(update)或自动加载生成后。
常见的内置事件包括:
脚本支持三种类型:闭包函数、类静态方法、可执行命令。
在 composer.json 中注册闭包:
"scripts": {
"post-install-cmd": [
"echo '安装完成!'"
]
}
更复杂的逻辑可以用 PHP 闭包(需放在独立的文件中并通过 autoload 加载):
"scripts": {
"post-install-cmd": [
"My\Scripts::onPostInstall"
]
}
然后创建对应的 PHP 类文件:
<?php
namespace My;
use ComposerScriptEvent;
class Scripts
{
public static function onPostInstall(Event $event)
{
$io = $event->getIO();
$io->write("<info>恭喜,项目已成功安装!</info>");
}
}
你可以调用系统命令或脚本:
"scripts": {
"post-update-cmd": "php artisan optimize",
"post-create-project-cmd": [
"chmod -R 755 bootstrap/cache",
"npm install && npm run build"
]
}
除了监听内置事件,你也可以定义自己的脚本别名:
"scripts": {
"dev-setup": [
"composer install",
"php artisan key:generate",
"php artisan migrate --seed"
],
"build": "npm run production"
}
然后通过以下方式运行:
composer run dev-setup composer run build
编写和使用脚本时需要注意以下几点:
|| true 忽略错误-v 参数查看详细输出:composer install -v
示例:结合 Laravel 项目的常见脚本配置
{
"scripts": {
"post-autoload-dump": "Illuminate\Foundation\ComposerScripts::postAutoloadDump",
"post-create-project-cmd": [
"php -r "file_exists('.env') || copy('.env.example', '.env');"",
"php artisan key:generate"
],
"post-update-cmd": [
"php artisan config:clear",
"php artisan route:clear"
],
"test": "phpunit"
}
}
这样就可以在每次更新依赖后自动清理缓存,提升开发效率。
基本上就这些。Composer Scripts 让项目初始化和维护变得更自动化,合理使用能显著减少重复操作。关键是写清楚脚本逻辑,并确保跨平台兼容性(比如 Windows 和 Linux 路径差异)。
以上就是composer scripts脚本怎么编写和使用_Composer Scripts脚本编写与使用方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号