比如项目打算通过composer引入一个第三方的日志库
1.该项目composer未使用过的情况下:
手动建立一个composer.json
文件,里面指定好需要的版本,然后composer install,安装(下载到vendor)完成后会生成一个composer.lock
文件
2.项目composer已使用过的情况下:
直接在composer.json
里面增加一行需要的依赖,然后composer install。 注意之前需手动删除composer.lock
(否则会抛出警告),如果不想这么麻烦,可直接require monolog/monolog:1.1.*,依赖下载完成后,会同步到composer.json
和composer.lock
文件中。
注意
如果直接执行require时不加版本号,composer会根据本地php版本选取适配的版本,不过如在composer.json中已经声明了版本
,那么会直接使用composer.json里的插件版本,不管本地php是否适配。
升级monolog版本
先在composer.json
里修改指定的版本后,执行composer update操作,注意不指定具体依赖名,直接依赖包执行composer update,程序会对比composer.json
和composer.lock
文件,找出差异的依赖进行升级, 也可以直接运行 update monolog/monolog 1.2.* ,依赖更新后会同步到composer.json
和composer.lock
中。
一句话就是:install先读lock再读json(后者更新到lock)。update直接读json,后更新到lock
不想操作json表就直接: 1.初次引入 composer require monolog/monolog:1.1.* 2.更新单个 composer update monolog/monolog 1.2.*
提示,composer.json
和composer.lock
应放入git版本库,vendor目录则直接屏蔽,其他开发人员pull代码后install安装依赖后可以与你保持一致。