PHP composer 常用的基本命令
安装包:
composer install
解释:
1、如果发现目录下有composer.lock文件,则会直接安装composer.lock内定义的包内容;2、如果没有则解析composer.json文件,并生成composer.lock文件(主要目的是为了保证项目移植 或者 其他人使用时,安装的依赖包以及其版本完全一致)
这个命令后面不需要跟包名,因为它是对所有配置好的依赖规则进行解析
更新包:
composer update [<package>]
解释:这个命令会更新某一个 已经配置了依赖规则的包, 若果不指定包名,则会更新所有配置过的依赖。
更新的规则是满足已经配置的包的版本约束。
如果某个包被版本固定死了,则不会被更新
"package": "1.0.0" // 这样配置,<package> 将永远只会使用1.0.0版本
否则只要满足版本约束的 有可更新的包就会本更新。
"package": "~1.2" // 这样配置, <package> 最高可以下载到1.3.0的版本(如果有),否则会下载1.2.0 ~ 1.3.0之间的任何最新版本
更新完成后,会重写composer.lock文件
关于composer包的版本命名规则参考:
语义化版本命名规范2.0
添加包:
composer require <package> <版本号>
解释:声明依赖关系命令 需要指定依赖的包名,可以指定版本号,否则会自动依赖包的稳定版本。且同时会生成composer.lock文件
移除包:
composer remove <package>
解释:虽然一般情况下很少使用 使用后,这将移除composer.json文件里面的依赖关系配置声明,并且也会删除 vendor/ 下的包文件
composer v1.8.0 条件下测试过
PS.
对composer.lock文件的解释 在composer V1.8.0的条件下(仅仅是测试,不保证在之前的版本不奏效) 只有在发现使用了版本管理控制的条件下(如Git), 才会生成触发composer.lock文件。否则不会触发生成该文件
其他一些命令:
更新 composer 的版本:
composer self-update
查看composer 版本
composer -V
composer --version
校验composer.json文件的合法性
composer validate
参考资料