개발 도구 composer Composer의 일반적인 명령 및 버전 제약 조건

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

Aug 20, 2019 pm 02:36 PM
composer

다음 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

LARAVEL 소개 예 LARAVEL 소개 예 Apr 18, 2025 pm 12:45 PM

Laravel은 웹 응용 프로그램을 쉽게 구축하기위한 PHP 프레임 워크입니다. 설치 : Composer를 사용하여 전 세계적으로 Laravel CLI를 설치하고 프로젝트 디렉토리에서 응용 프로그램을 작성하는 등 다양한 기능을 제공합니다. 라우팅 : Routes/Web.php에서 URL과 핸들러 간의 관계를 정의하십시오. 보기 : 리소스/뷰에서보기를 작성하여 응용 프로그램의 인터페이스를 렌더링합니다. 데이터베이스 통합 : MySQL과 같은 데이터베이스와 상자 외 통합을 제공하고 마이그레이션을 사용하여 테이블을 작성하고 수정합니다. 모델 및 컨트롤러 : 모델은 데이터베이스 엔티티를 나타내고 컨트롤러는 HTTP 요청을 처리합니다.

Composer를 사용하여 권장 시스템의 딜레마를 해결하십시오 : Andres-Montanez/권장 사항-펀들 Composer를 사용하여 권장 시스템의 딜레마를 해결하십시오 : Andres-Montanez/권장 사항-펀들 Apr 18, 2025 am 11:48 AM

전자 상거래 웹 사이트를 개발할 때 어려운 문제가 발생했습니다. 사용자에게 개인화 된 제품 권장 사항을 제공하는 방법. 처음에는 간단한 권장 알고리즘을 시도했지만 결과는 이상적이지 않았으며 사용자 만족도에도 영향을 미쳤습니다. 추천 시스템의 정확성과 효율성을 향상시키기 위해보다 전문적인 솔루션을 채택하기로 결정했습니다. 마지막으로 Composer를 통해 Andres-Montanez/Residations-Bundle을 설치하여 문제를 해결했을뿐만 아니라 추천 시스템의 성능을 크게 향상 시켰습니다. 다음 주소를 통해 작곡가를 배울 수 있습니다.

CRAFT CMS의 캐싱 문제 해결 : Wiejeben/Craft-Laravel-Mix 플러그인 사용 CRAFT CMS의 캐싱 문제 해결 : Wiejeben/Craft-Laravel-Mix 플러그인 사용 Apr 18, 2025 am 09:24 AM

CRAFTCMS를 사용하여 웹 사이트를 개발할 때 특히 CSS 및 JavaScript 파일을 자주 업데이트 할 때 자주 리소스 파일 캐싱 문제가 발생하면 이전 버전의 파일이 여전히 브라우저에서 캐싱 될 수 있으므로 사용자는 최신 변경 사항을 볼 수 없습니다. 이 문제는 사용자 경험에 영향을 줄뿐만 아니라 개발 및 디버깅의 어려움을 증가시킵니다. 최근에 나는 프로젝트에서 비슷한 문제를 겪었고, 약간의 탐색 후 플러그인 Wiejeben/Craft-Laravel-Mix를 발견하여 캐싱 문제를 완벽하게 해결했습니다.

작곡가로 이메일 마케팅을 단순화하는 방법 : duwa.io의 응용 프로그램 관행 작곡가로 이메일 마케팅을 단순화하는 방법 : duwa.io의 응용 프로그램 관행 Apr 18, 2025 am 11:27 AM

메일 마케팅 캠페인을 할 때 까다로운 문제가 있습니다. HTML 형식으로 효율적으로 메일을 작성하고 보내는 방법. 기존의 접근 방식은 수동으로 코드를 작성하고 SMTP 서버를 사용하여 이메일을 보내는 것이지만 이는 시간이 많이 걸릴뿐만 아니라 오류가 발생하기 쉽습니다. 여러 솔루션을 시도한 후 HTML 메일을 신속하게 만들고 보내는 데 도움이되는 간단하고 사용하기 쉬운 RESTAPI 인 Duwa.io를 발견했습니다. 개발 프로세스를 더욱 단순화하기 위해 작곡가를 사용하여 duwa.io의 PHP 라이브러리 인 CaptainDoe/Duwa를 설치하고 관리하기로 결정했습니다.

교리 단체 직렬화 효율성 향상 : SIDUS/교리 서리 라이저-펀드의 적용 교리 단체 직렬화 효율성 향상 : SIDUS/교리 서리 라이저-펀드의 적용 Apr 18, 2025 am 11:42 AM

많은 교리 단체와 함께 프로젝트를 수행 할 때 어려운 문제가있었습니다. 엔티티가 직렬화되고 사막화 될 때마다 성능이 매우 비효율적 이어져 시스템 응답 시간이 크게 증가합니다. 여러 최적화 방법을 시도했지만 잘 작동하지 않습니다. 다행스럽게도 Sidus/Doctrine-Serializer-Bundle을 사용 하여이 문제를 성공적으로 해결하여 프로젝트의 성능을 크게 향상 시켰습니다.

Laravel 프레임 워크 설치 방법 Laravel 프레임 워크 설치 방법 Apr 18, 2025 pm 12:54 PM

기사 요약 :이 기사는 Laravel 프레임 워크를 쉽게 설치하는 방법에 대한 독자들을 안내하기위한 자세한 단계별 지침을 제공합니다. Laravel은 웹 애플리케이션의 개발 프로세스를 가속화하는 강력한 PHP 프레임 워크입니다. 이 자습서는 시스템 요구 사항에서 데이터베이스 구성 및 라우팅 설정에 이르기까지 설치 프로세스를 다룹니다. 이러한 단계를 수행함으로써 독자들은 라벨 프로젝트를위한 탄탄한 토대를 빠르고 효율적으로 놓을 수 있습니다.

작곡가를 사용하여 Fecmall 고급 프로젝트 템플릿을 신속하게 구축하는 방법 작곡가를 사용하여 Fecmall 고급 프로젝트 템플릿을 신속하게 구축하는 방법 Apr 18, 2025 am 11:45 AM

전자 상거래 플랫폼을 개발할 때는 올바른 프레임 워크와 도구를 선택하는 것이 중요합니다. 최근에 기능이 풍부한 전자 상거래 웹 사이트를 구축하려고 할 때 어려운 문제가 발생했습니다. 확장 가능하고 완벽하게 기능적인 전자 상거래 플랫폼을 신속하게 구축하는 방법. 여러 솔루션을 시도하고 Fecmall의 고급 프로젝트 템플릿 (Fecmall/FBBCBase-App-Advanced)을 선택했습니다. 작곡가를 사용하면이 프로세스가 매우 간단하고 효율적입니다. 작곡가는 다음 주소를 통해 배울 수 있습니다. 학습 주소

Laravel 설치 코드 Laravel 설치 코드 Apr 18, 2025 pm 12:30 PM

Laravel을 설치하려면 다음 단계를 순서대로 수행하십시오. Composer 설치 (MacOS/Linux 및 Windows) 설치 LARAVEL 설치 프로그램 새 프로젝트 시작 서비스 액세스 애플리케이션 (URL : http://127.0.1:8000) 데이터베이스 연결 (필요한 경우)을 설정하십시오.

See all articles