在 composer.json 的 extra 字段中存储自定义配置是常见做法,可用于传递项目元信息或供插件、脚本使用。例如可定义字符串、布尔值、数组和嵌套对象:{ "extra": { "my-custom-setting": "value1", "paths": ["src/", "config/"] } }。PHP 中可通过读取并解析 composer.json 获取这些值:$composer = json_decode(file_get_contents(__DIR__ . '/composer.json'), true); $extra = $composer['extra'] ?? []; 也可在 Composer 脚本中通过 Event 对象访问:$event->getComposer()->getPackage()->getExtra()。常用于指定部署路径、配置插件行为、标记项目类型或传递构建参数,只要避免键名冲突,可自由组织结构,便于维护。

在 composer.json 的 extra 字段中存储自定义配置是一种常见做法,用于传递项目特定的元信息或供 Composer 插件、脚本使用的数据。Composer 本身不会处理这些数据,但你可以通过 PHP 代码在安装后读取它们。
extra 字段允许你自由定义键和值。你可以将自定义配置以 JSON 兼容格式写入:
{
    "name": "your-vendor/your-project",
    "extra": {
        "my-custom-setting": "value1",
        "another-option": true,
        "paths": [
            "src/",
            "config/"
        ],
        "environment": {
            "dev": {
                "debug": true
            },
            "prod": {
                "debug": false
            }
        }
    }
}上面的例子展示了字符串、布尔值、数组和嵌套对象等多种类型的配置。
在你的应用或脚本中,可以通过加载 composer.json 文件并解析 extra 字段来获取这些值:
$composer = json_decode(file_get_contents(__DIR__ . '/composer.json'), true); $extra = $composer['extra'] ?? []; $setting = $extra['my-custom-setting'] ?? null; $paths = $extra['paths'] ?? [];
如果你是在 Composer 脚本(如 post-install-cmd)中使用,也可以通过 Composer\Script\Event 对象访问:
public static function myScript(\Composer\Script\Event $event)
{
    $composer = $event->getComposer();
    $extra = $composer->getPackage()->getExtra();
    if (isset($extra['my-custom-setting'])) {
        // 使用你的自定义配置
        echo $extra['my-custom-setting'];
    }
}这种机制常用于:
基本上就这些。只要不与已知插件使用的键冲突,你可以自由命名和组织 extra 中的内容。注意保持结构清晰,便于维护。
以上就是如何在composer.json的"extra"字段中存储自定义配置?的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
 
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号