수색…


소개

작성자 는 PHP에서 가장 일반적으로 사용되는 종속성 관리자입니다. 노드의 npm , Python의 pip 또는 .NET의 NuGet 과 유사합니다.

통사론

  • php path / to / composer.phar [명령] [옵션] [arguments]

매개 변수

매개 변수 세부
특허 프로젝트에서 사용할 라이선스 유형을 정의합니다.
저자 프로젝트 작성자와 작성자 세부 정보를 정의합니다.
지원하다 지원 이메일, irc 채널 및 다양한 링크를 정의합니다.
요구하다 실제 종속성과 패키지 버전을 정의합니다.
require-dev 프로젝트 개발에 필요한 패키지를 정의합니다.
제안하다 패키지 제안, 즉 설치시 도움이되는 패키지를 정의합니다.
자동로드 프로젝트의 자동 로딩 정책을 정의합니다.
자동로드 - dev 프로젝트 개발을위한 자동 로딩 정책을 정의합니다.

비고

자동로드는 자동로드 정보를 지정하는 라이브러리에서만 작동합니다. 대부분의 도서관은 PSR-0 또는 PSR-4 와 같은 표준을 준수하며 준수 할 것입니다.

유용한 링크

몇 가지 제안

  1. Composer를 실행할 때 xdebug를 비활성화하십시오.
  2. Composer를 root 로 실행하지 마십시오. 패키지는 신뢰할 수 없습니다.

작곡가 란 무엇입니까?

작성자 는 PHP의 종속성 / 패키지 관리자입니다. 프로젝트 종속성을 설치, 추적 및 업데이트하는 데 사용할 수 있습니다. 또한 Composer는 응용 프로그램이 의존하는 종속성을 자동으로 처리하므로 주어진 파일의 맨 위에 포함 할 필요없이 프로젝트 내부의 종속성을 쉽게 사용할 수 있습니다.

프로젝트의 종속성은 일반적으로 프로젝트 루트에있는 composer.json 파일에 나열됩니다. 이 파일에는 생산 및 개발을위한 필수 패키지 버전 정보가 들어 있습니다.

composer.json 스키마의 전체 개요는 작곡가 웹 사이트 에서 찾을 수 있습니다.

이 파일은 텍스트 편집기를 사용하여 수동으로 편집하거나 composer require <package> 또는 composer require-dev <package> 와 같은 명령을 통해 명령 줄을 통해 자동으로 편집 할 수 있습니다.

프로젝트에서 composer.json 를 사용하려면 composer.json 파일을 만들어야합니다. 수동으로 생성하거나 단순히 composer init 를 실행할 수 있습니다. 터미널에서 composer init 을 실행하면 패키지 이름 ( 공급 업체 / 패키지 - 예 : laravel/laravel ), 설명 - 선택 사항 , 작성자 및 최소 안정성, 라이센스 및 필요와 같은 기타 정보가 프로젝트에 대한 기본 정보를 묻습니다. 패키지.

composer.json 파일의 require 키는 프로젝트에 의존하는 Composer를 지정합니다. require 는 패키지 이름 (예 : monolog / monolog )을 버전 제약 조건 (예 : 1.0. *)에 매핑하는 객체를 사용합니다.

{
    "require": {
        "composer/composer": "1.2.*"
    }
}

정의 된 종속성을 설치하려면 composer install 명령을 실행해야하며 제공된 version 제한 조건과 일치하는 정의 된 패키지를 찾은 다음 해당 패키지를 vendor 디렉토리로 다운로드합니다. 제 3 자 코드를 vendor 라는 디렉토리에 넣는 관례입니다.

install 명령이 composer.lock 파일을 생성 composer.lock 있습니다.

composer.lock 파일은 Composer에 의해 자동 생성됩니다. 이 파일은 현재 설치된 버전과 종속성 상태를 추적하는 데 사용됩니다. composer install 을 실행하면 잠금 파일에 저장된 상태와 정확히 일치하는 패키지가 설치됩니다.

Composer로 자동 로딩

작곡가는 PHP 프로젝트 (예 : Packagist )의 의존성을 관리하는 시스템을 제공하지만 특히 자동 로더로 사용되어 특정 네임 스페이스를 찾거나 어디에서 일반 함수 파일을 포함할지 지정할 수 있습니다.

composer.json 파일로 시작합니다.

{
    // ...
    "autoload": {
        "psr-4": {
            "MyVendorName\\MyProject": "src/"
        },
        "files": [
            "src/functions.php"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "MyVendorName\\MyProject\\Tests": "tests/"
        }
    }
}

이 구성 코드는 MyVendorName\MyProject 네임 스페이스의 모든 클래스가 src 디렉토리에 매핑되고 MyVendorName\MyProject\Tests 모든 클래스가 tests 디렉토리 (루트 디렉토리와 관련된)에 매핑되도록합니다. 또한 functions.php 파일을 자동으로 포함합니다.

이것을 composer.json 파일에 넣은 후, 터미널에서 composer update 를 실행하여 composer.json 가 의존성을 업데이트하고, lock 파일을 만들고, autoload.php 파일을 생성하십시오. 프로덕션 환경에 배포 할 때는 composer install --no-dev . autoload.php 파일은 composer.json 있는 디렉토리에서 생성되어야하는 vendor 디렉토리에서 찾을 수 있습니다.

아래 파일과 비슷한 줄을 사용하여 응용 프로그램 수명주기의 설정 지점에서이 파일을 일찍 require 해야 require .

require_once __DIR__ . '/vendor/autoload.php';

autoload.php 파일이 포함되면 composer.json 파일에서 제공 한 모든 종속성을로드합니다.

디렉토리 매핑에 대한 클래스 경로의 몇 가지 예는 다음과 같습니다.

  • MyVendorName\MyProject\Shapes\Squaresrc/Shapes/Square.php .
  • MyVendorName\MyProject\Tests\Shapes\Squaretests/Shapes/Square.php .

작성자 사용의 이점

패키지 버전은 당신이라는 파일에 설치 한 작곡가 트랙 composer.lock 프로젝트가 미래에 복제 될 때, 그래서 버전 관리에 최선을 다하고하기위한 것입니다, 간단하게 실행 composer install 다운로드하고 모든 프로젝트의 종속성을 설치합니다 .

Composer는 프로젝트별로 PHP 의존성을 처리합니다. 이렇게하면 하나의 PHP 패키지의 개별 버전에 의존하는 여러 프로젝트를 한 시스템에서 쉽게 수행 할 수 있습니다.

Composer는 개발자 환경에만 의도 된 종속성을 추적합니다.

composer require --dev phpunit/phpunit

Composer는 오토로더를 제공하므로 모든 패키지를 시작하기가 매우 쉽습니다. 예를 들어, composer require fabpot/goutte 와 함께 Goutte 를 설치 한 후에는 즉시 새 프로젝트에서 Goutte를 사용할 수 있습니다.

<?php

require __DIR__ . '/vendor/autoload.php';

$client = new Goutte\Client();

// Start using Goutte

작성기를 사용하면 작곡가에서 허용하는 최신 버전으로 프로젝트를 쉽게 업데이트 할 수 있습니다. EG. composer update fabpot/goutte 또는 각 프로젝트의 종속성을 composer update .

'composer install'과 'composer update'의 차이점

composer update

composer update 그들이에 지정된 우리의 종속성을 업데이트합니다 composer.json .

예를 들어, 우리 프로젝트에서 다음 구성을 사용하는 경우 :

"require": {
    "laravelcollective/html": "2.0.*"
}

실제로 2.0.1 버전의 패키지를 설치했다고 가정하고, composer update 를 실행하면이 패키지가 업그레이드됩니다 (예 : 2.0.2 가 이미 릴리스 된 경우).

자세한 내용은 composer update 예정 :

  • composer.json 읽기
  • composer.json 에서 더 이상 필요하지 않은 설치된 패키지를 제거하십시오.
  • 필요한 패키지의 최신 버전이 있는지 확인하십시오.
  • 패키지의 최신 버전을 설치하십시오.
  • 설치된 패키지 버전을 저장하기 위해 composer.lock 을 업데이트하십시오.

composer install

composer install 은 아무 것도 업데이트하지 않고 지정한 버전 (잠금)의 composer.lock 파일에 지정된대로 모든 종속성을 설치합니다.

상세히:

  • composer.lock 파일 읽기
  • composer.lock 파일에 지정된 패키지를 설치하십시오.

설치시기 및 업데이트시기

  • composer update 는 대부분 프로젝트 패키지를 업그레이드하기 위해 '개발'단계에서 사용됩니다.

  • composer install 은 주로 composer update 작성된 composer.lock 파일에 저장된 동일한 종속성을 사용하여 프로덕션 서버 또는 테스트 환경에 응용 프로그램을 설치하는 '배포 단계'에서 주로 사용됩니다.

작성자 사용 가능한 명령

명령 용법
작곡가에 대한 간단한 정보
아카이브 이 작곡가 패키지의 아카이브 만들기
검색 브라우저에 패키지의 저장소 URL 또는 홈페이지를 엽니 다.
클리어 캐시 작성자의 내부 패키지 캐시를 지 웁니다.
클리어 캐쉬 작성자의 내부 패키지 캐시를 지 웁니다.
구성 구성 옵션 설정
프로젝트 생성 패키지에서 지정된 디렉토리로 새 프로젝트를 만듭니다.
의존하다 주어진 패키지를 어떤 패키지가 설치하는지 보여줍니다.
진단하다 일반적인 오류를 식별하도록 시스템을 진단합니다.
덤프 - 자동로드 오토로더를 덤프합니다.
dumpautoload 오토로더를 덤프합니다.
임원 벤더 된 바이너리 / 스크립트 실행
글로벌 전역 작곡가 dir ($ COMPOSER_HOME)에서 명령을 실행할 수 있습니다.
도움 명령에 대한 도움말을 표시합니다.
브라우저에 패키지의 저장소 URL 또는 홈페이지를 엽니 다.
정보 패키지에 대한 정보 표시
초기화 현재 디렉토리에 기본 composer.json 파일을 만듭니다.
설치하다 composer.lock 파일에서 프로젝트 종속성을 설치하거나, ​​composer.json에서 폴백합니다.
면허 종속성 라이선스에 대한 정보 표시
명부 목록 명령
시대에 뒤진 최신 버전을 포함하여 사용 가능한 업데이트가 설치된 설치된 패키지의 목록을 표시합니다.
금지하다 패키지가 설치되지 못하게하는 패키지를 보여줍니다.
풀다 require 또는 require-dev에서 패키지를 제거합니다.
요구하다 필요한 패키지를 composer.json에 추가하고 설치합니다.
실행 스크립트 composer.json에 정의 된 스크립트를 실행하십시오.
수색 패키지 검색
자체 업데이트 composer.phar를 최신 버전으로 업데이트합니다.
셀프 업데이트 composer.phar를 최신 버전으로 업데이트합니다.
보여 주다 패키지에 대한 정보 표시
지위 로컬에서 수정 된 패키지 목록보기
제안 패키지 제안 표시
최신 정보 composer.json에 따라 종속성을 최신 버전으로 업데이트하고 composer.lock 파일을 업데이트합니다.
유효성을 검사하다 composer.json 및 composer.lock의 유효성을 검사합니다.
주어진 패키지를 어떤 패키지가 설치하는지 보여줍니다.
왜 안돼? 패키지가 설치되지 못하게하는 패키지를 보여줍니다.

설치

Composer는 로컬로, 프로젝트의 일부로 또는 전체적으로 시스템 전체 실행 파일로 설치할 수 있습니다.

장소 상에서

설치하려면 터미널에서 다음 명령을 실행하십시오.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# to check the validity of the downloaded installer, check here against the SHA-384:
# https://composer.github.io/pubkeys.html
php composer-setup.php
php -r "unlink('composer-setup.php');"

그러면 현재 디렉토리에 composer.phar (PHP 아카이브 파일)가 다운로드됩니다. 이제 php composer.phar 를 사용하여 Composer를 사용할 수 있습니다.

php composer.phar install

전 세계적으로

Composer를 전역 적으로 사용하려면 composer.phar 파일을 PATH 된 디렉토리에 저장하십시오

mv composer.phar /usr/local/bin/composer

이제 php composer.phar 대신에 어디서나 composer 를 사용할 수 있습니다.

composer install


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow