比如项目打算通过composer引入一个第三方的日志库
1.该项目composer未使用过的情况下:

手动建立一个composer.json文件,里面指定好需要的版本,然后composer install,安装(下载到vendor)完成后会生成一个composer.lock文件

2.项目composer已使用过的情况下:

直接在composer.json里面增加一行需要的依赖,然后composer install。 注意之前需手动删除composer.lock(否则会抛出警告),如果不想这么麻烦,可直接require monolog/monolog:1.1.*,依赖下载完成后,会同步到composer.jsoncomposer.lock文件中。

注意

如果直接执行require时不加版本号,composer会根据本地php版本选取适配的版本,不过如在composer.json中已经声明了版本,那么会直接使用composer.json里的插件版本,不管本地php是否适配。

升级monolog版本

先在composer.json里修改指定的版本后,执行composer update操作,注意不指定具体依赖名,直接依赖包执行composer update,程序会对比composer.jsoncomposer.lock文件,找出差异的依赖进行升级, 也可以直接运行 update monolog/monolog 1.2.* ,依赖更新后会同步到composer.jsoncomposer.lock中。

一句话就是:install先读lock再读json(后者更新到lock)。update直接读json,后更新到lock

不想操作json表就直接: 1.初次引入 composer require monolog/monolog:1.1.* 2.更新单个 composer update monolog/monolog 1.2.*

提示,composer.jsoncomposer.lock应放入git版本库,vendor目录则直接屏蔽,其他开发人员pull代码后install安装依赖后可以与你保持一致。