composer如何升级vendor扩展包
发布于 作者:苏南大叔 来源:程序如此灵动~composer
作为php的包管理工具,在企业级别的代码中,应用越来越广泛。不过,在php的世界里面,离开了composer并不是寸步难行的。毕竟,在以前的php世界里面,是不存在composer
的。但是node离开了npm,恐怕是后果不堪设想。本文的主题是:composer
如何升级某个扩展包。苏南大叔给出点自己的相关理解。
composer.lock
文件
首先,苏南大叔先讲述一下前置内容:composer.lock
文件。
composer.lock
文件存在于项目根目录下面,是composer install
的产物。由于一般大家的版本号写的都比较宽泛,所以不同的人composer install
的最终结果,可能有较大区别。特别是随着时间的推移,很可能composer install
初始化的项目,变得不是那么可靠了。
所以,这个时候,composer.lock
文件就有其存在的意义。composer install
命令会先遵照composer.lock
中的版本(也就是说是某个特定的版本号),然后在查找composer.json
安装最新扩展包和依赖(也就是说,版本号可能存在跳跃性了)。那么多成员协作编写php项目的时候,为了保证版本的一致性,比较好的方案是:
- 把
composer.lock
文件提交到版本库,其它人执行composer install
。 - 或者把
vendor
目录也提交到版本库,其它人不用执行任何composer
命令。
composer update
命令
看完了上述有关composer.lock
文件的内容后,这里讲述composer update
命令。
在这里,苏南大叔提示您:这个命令一定一定要谨慎执行。因为:这个命令会带来vendor包版本的更新,增加项目的不确定性。当然,如果您的项目代码(包括composer.lock,composer.json,vendor/*),都加入了git或者svn版本库管理功能的话,倒也没有特别可惊慌的,毕竟可以随时回滚的嘛。
composer update
的命令,从 composer.json
安装最新扩展包和依赖。主要有两种情况。如下:
composer update
, 更新composer.json
中的全部包。composer update vendor/package
,只更新特定vendor包最新。
下图是苏南大叔,更新了overtrue大神的easywechat包的截图。
composer update overtrue/easywechat
注意:composer update
会遵守composer.json
中的版本约定,并不会跨大的版本号更新。比如,苏南大叔下载更新到的easywechat
实际上版本号是3.3.2。而实际上easywechat
版本号已经更新到4.0
系列。也就是说,不更新composer.json
,但是会更新composer.lock
。
composer dump-autoload
命令
一般来说,update某个包的话,不会导致class not found
的情况发生。但是,这里还是留着一手备用的。那就是composer dump-autoload
命令,它可以更新识别vendor目录下面的所有新的扩展包。
composer dump-autoload
composer info
命令
composer update <vendor/pageage>
可以查看你安装的某个扩展包的具体信息。例如:下面这条就是苏南大叔,查看本地安装的easywechat包信息的例子。
composer info overtrue/easywechat
结论
composer管理器,偶尔用一下,并不像npm那么使用频繁。更多composer的经验文章,苏南大叔提示您:请点击这里查看:https://newsn.net/tag/composer/ 。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。