[PHP] 패키지 관리 도구 Composer를 그림으로 이해

개요



PHP의 패키지 관리 툴 Composer에 대해서 그림을 사용해 정리했습니다.
Composer는 이미 설치되어 있다고 가정합니다.

Composer란?



PHP의 패키지 관리 도구입니다.

패키지 관리 도구란?



프로젝트가 필요로 하는 라이브러리나 패키지를 종속성을 고려한 후에 관리해 주는 툴입니다.

종속성이란?



라이브러리와 패키지에는 종속성이 있습니다.
예를 들면 다음과 같습니다.
(1) 라이브러리 A를 사용하려면 라이브러리 B와 라이브러리 C가 필요합니다.
(2) 라이브러리 A의 버전이 2이면 라이브러리 B의 버전은 3이 필요합니다.

이 예에서, Composer는

(1) 라이브러리 A를 지정하여 설치하면 자동으로 라이브러리 B와 라이브러리 C도 설치합니다.


(2) 라이브러리 A를 버전 2로 업데이트하면 라이브러리 B의 버전을 자동으로 3으로 업데이트합니다.

라는 것을 해줍니다.

라이브러리 지정



프로젝트에 추가할 라이브러리를 지정하는 파일이 composer.json입니다.
composer.json은 프로젝트에 필요한 라이브러리의 목록과 버전을 나열합니다.


이 파일은 직접 작성 및 편집하거나 다음과 같은 명령으로 조작할 수 있습니다.
$ composer init # composer.jsonを作成
$ composer require パッケージ名 # composer.jsonにパッケージを追加

라이브러리 로드



라이브러리를 설치하려면 다음 명령을 실행합니다.
$ composer install

실행하면 다음이 발생합니다.

  • composer.lock이 생성됩니다
  • 라이브러리의 소스 본문이 vendor 디렉토리에 설치됩니다



  • 그러나 프로젝트에 이미 composer.lock이 있는 경우에는 해당 정보로 우선적으로 설치됩니다.
    (팀에서 개발하는 경우나, Laravel 등의 프레임워크로 환경 구축한 경우 등)



    composer.lock의 유무에 관계없이 composer.json에서 종속성을 다시 해결하고 설치하려면 다음 명령을 실행하십시오.
    $ composer update
    



    composer.lock



    composer.lock은 실제로 라이브러리의 어떤 버전이 설치되었는지 구체적으로 설명합니다.
    팀에서 개발하는 경우 이를 이용하여 개발 환경의 라이브러리에 의한 차이를 없앨 수 있습니다.


    vendor



    설치된 패키지의 소스 본문이 저장됩니다.


    참고



    Composer 도입 및 사용법(초보자 복습용) - Qiita
    composer.json, composer.lock은 무엇입니까? 라는 사람을 위한 요약 - Qiita
    Composer은 누구? 또는 install과 update의 차이. 그리고 오토로드의 구조. | 쓰레기통 Blog

    마지막으로



    Composer 아저씨는 똑똑하다. 감사합니다 삼촌.
    그 중 여유가 있으면 JavaScript의 패키지 관리 툴 npm에 대해서도 정리하려고 생각합니다.
    기사에 실수나 불명한 점이 있으면 지적 부탁드립니다.

    좋은 웹페이지 즐겨찾기