@dev、@beta、@RC是Composer指定版本稳定性的显式修饰符,分别允许安装开发版、测试版和候选发布版,且遵循向下兼容规则(如@RC包含@beta和@alpha),必须严格按格式使用。
Composer的
、
、
到底能装什么版本
它们不是“随便加个后缀就能用”的修饰符,而是明确告诉 Composer:允许安装哪些稳定性级别的版本。Composer 默认只认
(即无后缀或带
的正式版),其他都要显式放行。
:接受
、
这类分支别名,也接受带
后缀的预发布标签(如
)
:只接受
标签(如
),不接受
或
:接受
和
(Composer 自动向下兼容),但不接受
:必须全大写;接受
、
等,也包含
和
注意:
不是默认写在命令里的,它是隐含策略——你没写任何 flag 时,Composer 就按
行事。
为什么
没反应,还是装了
这不是网络慢或命令错,是 Composer 在依赖图里“算赢了你”:它发现已有其他包锁定了更高版本(比如
要求
),而
不满足其稳定性策略,就干脆跳过,回退到已知安全的
。
先确认目标版本真实存在:
,看输出里有没有
这一行
检查
中是否设了
(默认值),它会直接屏蔽所有 beta 版本
删掉
里该包对应条目,再跑
,否则 lock 文件会缓存旧策略
错误写法示例:
(缺数字)、
(大小写/分隔符错)、
(双重 flag,直接报错)
和
有什么区别
前者是临时开关,后者是版本锚点——作用范围和生效逻辑完全不同。
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
只影响当前命令,比如
,它会让 Composer 在解析
时把
临时设为
,但不会改项目配置,也不会影响其他包
是写死在版本约束里的,比如
,它强制这个包必须用
级别安装,且只对该包生效;如果同时写了
又设了
,Composer 会优先尊重
不能绕过版本号匹配:就算你写
,但包仓库里根本没有
这个 tag,Composer 仍会静默回退到最近的 stable 版
怎么让整个项目默认允许
,但又不让
混进来
靠
配合
,而不是靠全局 config 或反复加 flag。
在
的
段加:
——这样既放开 RC 及以上(含 beta/alpha),又避免意外拉到
单独存在没用:它只是“偏好”,不是“禁止”;必须和
搭配才能起约束作用
某些包自己在
里写了
,会覆盖你项目的设置,导致它的子依赖仍可能装 dev 版——这种得单独处理,比如用
强制压住
真正容易被忽略的是:RC 必须全大写。写成
或
,Composer 就当没看见,直接退回
策略,连 warning 都不给。
@dev@beta@RC@stable-stable@devdev-maindev-develop-dev3.1.0-dev@alpha-alpha3.1.0-alpha1-beta-RC@beta-beta-alpha-RC@RC-RC1-RC2-beta-alpha@stable@stablecomposer require vendor/pkg:2.5.0-beta12.4.0another/pkg^2.52.5.0-beta12.4.0composer show -a vendor/pkg2.5.0-beta1composer.json"minimum-stability": "stable"composer.lockcomposer update vendor/pkg --with-all-dependencies2.5.0-beta2.5.0.BETA12.5.0-beta1@dev--stability=beta@beta--stability=betacomposer require vendor/pkg --stability=betavendor/pkgminimum-stabilitybeta@beta"vendor/pkg": "2.5.0-beta1@beta"beta@beta--stability=rc@beta--stability--stability=beta2.5.0-beta1RCdev"minimum-stability""prefer-stable"composer.jsonconfig"minimum-stability": "RC",
"prefer-stable": truedev-main"prefer-stable": trueminimum-stabilitycomposer.json"minimum-stability": "dev"composer require vendor/pkg --stability=RCrcRcstable