Home>Article>Development Tools> composer updates specified dependency packages
composer updates the specified dependency package
compoesr's require/update can update the specified dependency package (upgrade /downgrade).
require is more flexible. If it is not installed, it will be installed. If it is installed, it will be upgraded or downgraded according to the version number passed in.
Update cannot pass a new version number on the command line. You need to manually specify the new version number in composer.json and then execute the update command.
composer require google/protobuf --ignore-platform-reqs -vvv
Related recommendations: [composer tutorial]
require command
Example
// 安装包 composer require hashids/hashids:2.0.0 // 已安装 升级 composer require hashids/hashids:3.0.0 // 已安装 降级 composer require hashids/hashids:2.0.4
update command
The update command cannot specify the package version number in the command line, and you need to manually modify the composer.json file
// 安装包 composer require hashids/hashids:2.0.0
Incorrect usage
composer update hashids/hashids:3.0.0
Correct usage example
vim composer.json "require": { "hashids/hashids": "3.0.0" }, :wq #升级到3.0.0 composer update hashids/hashids vim composer.json "require": { "hashids/hashids": "2.0.4" }, :wq #降级到2.0.4 composer update hashids/hashids
At the same time, if we edit and update the version numbers of multiple packages, we cannot use the
composer update package1 composer update package2 composer update package3
method to update them sequentially, because composer will verify the integrity of the configuration file json vs Lock, you specified that you want me to update A, but the version of B is inconsistent in json and lock, but you don't want me to update it. This is problematic.
At this time, you can only use composer update to globally update dependencies. Note that this is an update operation for global packages. Some packages that you have not changed but use a version number range may also be updated and upgraded. Please use with caution!
install command
install can be used to install dependencies for the first time after project initialization, and the version number incomposer.lock
will be read first , to ensure the consistency of package versions in collaborative development as much as possible.
The package version record that exists in composer.lock is equivalent to executingcomposer require packageName:versionNo
, and the one that does not exist is equivalent to executingcomposer update packageName with versionRule in composer.json
.
When we collaborate on development, A installs a new dependency package locally, or updates a dependency package, which will be written to composer.lock/composer.json. A uploads it to the warehouse, and B pulls it locally. , a composer install should be executed to synchronize the team's version changes.
So during collaborative development, we recommend uploadingcomposer.lock/composer.json
to the remote warehouse at the same time.
Version number range
大于/大于等于:>1.2.3 >=1.2.3 小于/小于等于:<1.2.3 <=1.2.3 确切的版本号:1.2.3 ~1.2.3: 1.2.3 <= version < 1.3 ^1.2.3: 1.2.3 <= version < 2.0 { "php": ">=7.0", "ext-swoole": ">=4.0.0", "lib-curl": ">=7.29.0" }
The above is the detailed content of composer updates specified dependency packages. For more information, please follow other related articles on the PHP Chinese website!