Home > Development Tools > composer > composer updates specified dependency packages

composer updates specified dependency packages

藏色散人
Release: 2019-08-03 13:46:24
forward
8870 people have browsed it

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
Copy after login

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
Copy after login

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
Copy after login

Incorrect usage

composer update hashids/hashids:3.0.0
Copy after login

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
Copy after login

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
Copy after login

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 in composer.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 executing composer require packageName:versionNo, and the one that does not exist is equivalent to executing composer 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 uploading composer.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"
}
Copy after login

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!

Related labels:
source:52bug.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template