> 개발 도구 > composer > 본문

Composer의 일반적인 명령 및 버전 제약 조건

藏色散人
풀어 주다: 2019-08-21 14:50:18
앞으로
2301명이 탐색했습니다.

다음 composer 사용법 튜토리얼 칼럼에서는 일반적으로 사용되는 패키지 관리 명령과 패키지 버전을 제한하는 방법에 대해 설명합니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

Composer의 일반적인 명령 및 버전 제약 조건

공통 명령어

require 명령어

"Composer Tutorial"에서 install 명령어를 사용하여 종속 항목을 설치하는 방법을 간략하게 소개했습니다. install 명령 외에도 require 명령을 사용하면 작곡가.json에 종속성 정보를 수동으로 추가하지 않고도 종속성을 신속하게 설치할 수 있습니다.

$ composer require monolog/monolog
Using version ^1.19 for monolog/monolog
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing psr/log (1.0.0)
    Downloading: 100%         
 
  - Installing monolog/monolog (1.19.0)
    Downloading: 100%         
 
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
......
monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
Writing lock file
Generating autoload files
로그인 후 복사

Composer는 먼저 적절한 버전을 찾은 다음, 작곡가.json 파일을 업데이트하고 추가합니다. 모노로그/모노로그 패키지에 대한 관련 정보가 필요하며, 설치를 위한 관련 종속성을 다운로드하고 마지막으로 작곡가.잠금 파일을 업데이트하고 PHP 자동 로딩 파일을 생성합니다.

update 명령

update 명령을 사용하면 프로젝트의 모든 패키지 또는 특정 특정 패키지를 업데이트할 수 있습니다.

# 更新所有依赖
$ composer update
 
# 更新指定的包
$ composer update monolog/monolog
 
# 更新指定的多个包
$ composer update monolog/monolog symfony/dependency-injection
 
# 还可以通过通配符匹配包
$ composer update monolog/monolog symfony/*
로그인 후 복사

패키지에서 업그레이드할 수 있는 버전은 버전 제한에 따라 제한되며, 제한 버전 이상의 버전으로 패키지는 업그레이드되지 않는다는 점에 유의하시기 바랍니다. 예를 들어, Composer.json에 있는 패키지의 버전 제약 조건이 ^1.10이고 최신 버전이 2.0인 경우입니다. 그러면 update 명령은 패키지를 버전 2.0으로 업그레이드할 수 없고 버전 1.x로만 업그레이드할 수 있습니다. 버전 제한 사항은 아래 소개를 참조하세요.

remove 명령

remove 명령을 사용하여 패키지와 해당 종속성을 제거합니다(종속성이 다른 패키지에서 사용되지 않는 경우).

$ composer remove monolog/monolog
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Removing monolog/monolog (1.19.0)
  - Removing psr/log (1.0.0)
Writing lock file
Generating autoload files
로그인 후 복사

search 명령

search 명령을 사용하여 패키지 검색:

$ composer search monolog
monolog/monolog Sends your logs to files, sockets, inboxes, databases and various web services
 
# 如果只是想匹配名称可以使用--only-name选项
$ composer search --only-name monolog
로그인 후 복사

show 명령

show 명령을 사용하면 현재 프로젝트에 설치된 패키지에 대한 정보를 나열할 수 있습니다.

# 列出所有已经安装的包
$ composer show
 
# 可以通过通配符进行筛选
$ composer show monolog/*
 
# 显示具体某个包的信息
$ composer show monolog/monolog
로그인 후 복사

위는 일반적으로 사용되는 명령에 대한 소개입니다.

버전 제약 조건

앞서 언급했듯이 다운로드할 패키지 버전을 지정할 수 있습니다. 예를 들어, 모노로그 버전 1.19를 다운로드하려고 합니다. 작곡가.json 파일을 통해 목표를 달성할 수 있습니다:

{
    "require": {
        "monolog/monolog": "1.19"
    }
}
로그인 후 복사

그런 다음 설치 명령을 실행하거나 require 명령을 통해:

$ composer require monolog/monolog:1.19
 
# 或者
$ composer require monolog/monolog=1.19
 
# 或者
$composer require monolog/monolog 1.19
로그인 후 복사

위와 같이 특정 버전을 지정하는 것 외에도 다양한 제약 조건을 통해 버전을 지정할 수도 있습니다. .

기본 제약 조건

정확한 버전

특정 버전을 지정하고 Composer에 이 버전만 설치하도록 지시할 수 있습니다. 그러나 다른 종속성에 다른 버전이 필요한 경우 패키지 설치 또는 업데이트가 결국 실패하고 종료됩니다.

예: 1.0.2

Scope

비교 연산자를 사용하면 패키지 범위를 지정할 수 있습니다. 이러한 연산자에는 >, >=, <, <=, !=가 포함됩니다.

여러 범위를 정의하고, 공백이나 쉼표를 사용하여 논리적 AND를 표시하고, 이중 수직 막대를 사용하여 논리적 OR을 표시할 수 있습니다. AND의 우선순위는 or보다 높습니다.

제한되지 않은 범위를 사용하면 예측할 수 없는 버전이 설치되고 하위 호환성이 깨질 수 있다는 점에 유의해야 합니다. 하이픈 연산자를 사용하는 것이 좋습니다.

예:

>=1.0
>=1.0 <2.0
>=1.0 <1.1 || >=1.2
로그인 후 복사

범위(하이픈 사용)

하이픈으로 연결된 범위는 포함된 버전 범위를 나타내며 경계가 있어야 함을 의미합니다. 하이픈의 왼쪽은 >= 버전을 나타내는 반면, 하이픈 오른쪽의 상황은 좀 더 복잡합니다. 오른쪽 버전이 완전한 버전 번호가 아닌 경우 와일드카드 문자를 사용하여 완성됩니다. 예를 들어, 1.0 - 2.0은 >=1.0.0 <2.1(2.0은 2.0.*과 동일)과 동일하고, 1.0.0 - 2.1.0은 >=1.0.0 <=2.1과 동일합니다. 0.

예: 1.0 - 2.0

와일드카드

와일드카드를 사용하여 버전을 정의할 수 있습니다. 1.0.*은 >=1.0 <1.1과 동일합니다.

예: 1.0.*

다음으로 중요한 버전 연산자

tilde ~~

我们先通过后面这个例子去解释~操作符的用法:~1.2相当于>=1.2 <2.0.0,而~1.2.3相当于>=1.2.3 <1.3.0。对于使用Semantic Versioning作为版本号标准的项目来说,这种版本约束方式很实用。例如~1.2定义了最小的小版本号,然后你可以升级2.0以下的任何版本而不会出问题,因为按照Semantic Versioning的版本定义,小版本的升级不应该有兼容性的问题。简单来说,~定义了最小的版本,并且允许版本的最后一位版本号进行升级(没懂得话,请再看一边前面的例子)。

例子:~1.2

需要注意的是,如果~作用在主版本号上,例如~1,按照上面的说法,Composer可以安装版本1以后的主版本,但是事实上是~1会被当作~1.0对待,只能增加小版本,不能增加主版本。

折音号^

먼저 다음 예를 통해 ~ 연산자의 사용법을 설명하겠습니다. ~1.2는 >와 동일합니다. =1.2 <2.0.0이고 ~1.2.3은 >=1.2.3 <1.3.0과 동일합니다. 이 버전 제한 방법은 의미론적 버전 관리를 버전 번호 표준으로 사용하는 프로젝트에 매우 실용적입니다. 예를 들어 ~1.2는 가장 작은 부 버전 번호를 정의하며 의미 체계 버전 관리의 버전 정의에 따라 부 버전 업그레이드에는 호환성 문제가 없어야 하기 때문에 2.0 미만의 모든 버전을 문제 없이 업그레이드할 수 있습니다. 간단히 말해서 ~는 최소 버전을 정의하고 버전 번호의 마지막 숫자를 업그레이드할 수 있도록 허용합니다(이해가 안 되는 경우 이전 예를 다시 살펴보시기 바랍니다). 🎜🎜예: ~1.2🎜🎜위 설명에 따라 ~가 ~1과 같은 주요 버전 번호에서 작동하는 경우 Composer는 버전 1 이후의 주요 버전을 설치할 수 있지만 실제로는 ~1이 처리됩니다. ~1.0으로 처리되므로 메이저 버전이 아닌 마이너 버전만 추가할 수 있습니다. 🎜🎜🎜Zheyinhao^🎜🎜

^操作符的行为跟Semantic Versioning有比较大的关联,它允许升级版本到安全的版本。例如,^1.2.3相当于>=1.2.3 <2.0.0,因为在2.0版本前的版本应该都没有兼容性的问题。而对于1.0之前的版本,这种约束方式也考虑到了安全问题,例如^0.3会被当作>=0.3.0 <0.4.0对待。

例子:^1.2.3

版本稳定性

如果你没有显式的指定版本的稳定性,Composer会根据使用的操作符,默认在内部指定为-dev或者-stable。例如:

Composer의 일반적인 명령 및 버전 제약 조건

如果你想指定版本只要稳定版本,你可以在版本后面添加后缀-stable。

minimum-stability 配置项定义了包在选择版本时对稳定性的选择的默认行为。默认是stable。它的值如下(按照稳定性排序):dev,alpha,beta,RC和stable。除了修改这个配置去修改这个默认行为,我们还可以通过稳定性标识(例如@stable和@dev)来安装一个相比于默认配置不同稳定性的版本。例如:

{
    "require": {
        "monolog/monolog": "1.0.*@beta",
        "acme/foo": "@dev"
    }
}
로그인 후 복사

以上是版本约束的介绍。

위 내용은 Composer의 일반적인 명령 및 버전 제약 조건의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cuiqingcai
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!