您好,欢迎访问宜昌市隼壹珍商贸有限公司
400 890 5375Composer不直接管理项目版本号,而是通过composer.json的version字段或Git标签间接定义;正式版本应打符合语义化规范的Git标签(如v2.1.0),Packagist据此自动识别;主项目通常无需设version,除非作为可发布包。
Composer 本身不直接管理项目的“版本号”,而是通过 composer.json 中的 version 字段或 Git 标签间接定义和识别项目版本。真正起作用的是你如何配置、发布和引用它。
如果你的项目本身是一个可被其他项目 require 的包(比如开源库),应在 composer.json 中显式写入 version 字段:
"version": "1.2.3" 或 "version": "dev-main"
version,改用 Git 标签自动推断版本对大多数 Composer 包来说,版本号实际来自 Git 标签。这是推荐做法:
git tag v2.1.0
git push origin v2.1.0
2.1.0
"your-vendor/your-package": "^2.1" 正常安装Composer 不提供运行时 API 获取版本,但你可以借助以下方式在 PHP 中访问:
composer install --no-dev,Composer 会生成 vendor/composer/installed.json,其中包含本项目及所有依赖的版本信息composer.json 的 version 或 Git 当前标签写入一个 PHP 配置文件,例如 version.php
echo json_decode(file_get_contents('composer.json'))->version ?? 'dev';(仅适用于开发环境且 version 已手动设置)几个容易踩坑的地方:
composer update 不会更新你项目
的 version 字段 —— 它只更新依赖composer.json 中的 version 后,不会自动影响 Packagist,必须打新标签并推送version 字段写 dev-master 这类分支别名;分支别名应放在 branch-alias 下(用于开发版映射)version,除非你要把它当作包发布基本上就这些。版本号不是 Composer “管理”的对象,而是你通过 Git 标签 + composer.json 协同约定的结果。