如何让composer在执行前后运行自定义脚本

冰火之心
发布: 2025-10-01 19:12:02
原创
172人浏览过
Composer可通过配置scripts字段在事件前后执行自定义脚本,如post-install-cmd、post-update-cmd等,支持运行shell命令或调用PHP静态方法,结合autoload可复用脚本类,实现安装、更新后的自动任务处理,提升开发自动化效率。

如何让composer在执行前后运行自定义脚本

Composer 允许你在安装、更新或卸载依赖时自动执行自定义脚本,通过在 composer.json 中配置 scripts 字段实现。你可以在事件发生前后运行 PHP 脚本或 shell 命令。

支持的常用 Composer 事件

Composer 提供多个生命周期事件,你可以绑定脚本到这些事件:

  • pre-install-cmd:执行 install 前
  • post-install-cmd:install 完成后
  • pre-update-cmd:update 前
  • post-update-cmd:update 完成后
  • pre-autoload-dump:生成自动加载文件前
  • post-autoload-dump:自动加载生成后
  • post-root-package-install:项目初始化后(如 create-project)

配置自定义脚本的方法

编辑 composer.json 文件,在 scripts 字段中添加对应事件和命令。

示例:在 install 和 update 后输出提示并生成 autoload 文件
{
    "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。

Alkaid.art
Alkaid.art

专门为Phtoshop打造的AIGC绘画插件

Alkaid.art 153
查看详情 Alkaid.art

编写可复用的 PHP 脚本类

创建一个 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 查看详细输出。

基本上就这些,合理使用脚本能极大提升开发自动化程度。

以上就是如何让composer在执行前后运行自定义脚本的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号