Composer란

Composer(컴포저)란 PHP에서 사용되는 프로젝트 기반 의존성 관리 툴이다. 이는 프로젝트의 의존성 라이브러리들을 기술하고, 관리(설치/업데이트)한다.

 

의존성 관리

컴포저는 Yum이나 Apt같은 패키지 매니저가 아니다. 물론, 컴포저가 '패키지'나 라이브러리들을 다루지만, 이는 프로젝트 기반의 매니징을 하고, 의존성 라이브러리들을 프로젝트 안의 디렉토리에 설치한다. 기본적으로, 컴포저는 어떤 것도 전역 위치에 설치하지 않는다.

 

가정:

  • 여러 라이브러리에 의존성을 가지는 프로젝트가 있고
  • 어떤 라이브러리는 또 다른 라이브러리에 의존성을 가진다

Composer:

  • 의존성을 가지는 라이브러리를 명시할 수 있게 해준다.
  • 어떤 패키지의 어떤 버전이 필요한지 찾아서, 프로젝트 폴더 안에 설치해준다.
  • 모든 의존성 라이브러리들을 하나의 명령으로 업데이트 할 수 있다.

 

최소 요구사양

최신버전의 Composer는 PHP 7.2.5를 요구한다.

파일 압축 해제를 위해, 7z(또는 7zz), gzip, tar, untar, unzip, xz을 사용한다.

 

설치

Composer 실행파일 다운로드 페이지 : https://getcomposer.org/download/

(composer.phar 파일을 다운받으면 된다.)

phar 파일이란?
배포를 쉽게 하기 위해 php 파일들과 관련 리소스들을 하나로 묶어 놓은 파일이다.

 

사용

Composer를 프로젝트에 사용하려면, composer.json 파일이 있어야 한다.

 

Composer.json

{
    "require": {
        "monolog/monolog": "2.0.*"
    }
}
  • 이파일에 프로젝트에서 사용하는 의존성과, 다른 메타데이터들을 기술한다. 
  • composer.json은 보통 프로젝트의 최상위 디렉토리 안에 위치해야 한다.
  • "require" 키 : require 키에 의존성 라이브러리들 정보를 기술한다.
    • 패키지 이름 : vendor 이름과 프로젝트 이름의 조합으로 이루어진다. (예: json 라이브러리를 만든 vendor가 둘일 경우, 패키지 이름은 igorw/json 또는 seldaek/json 등이 될 수 있다.)
    • 패키지 버전 제한 : 패키지 버전을 2.0.* 이라고 기술 하는 경우, 2.0 브랜치의 어떤 버전도 사용 가능하다.  (>=2.0 <2.1 사이의 버전을 사용함)

 

의존성 설치

의존성 라이브러리들을 업데이트 하기 위해, 프로젝트 폴더 안에서 update 명령을 사용한다.

 

php composer.phar update

 

  • 위 명령을 수행하면, composer.json 파일 안의 모든 의존성 관련 정보를 파악하여 해당 버전의 composer.lock 파일을 생성한다. (이 composer.lock 파일을 버전관리 시스템에 commit 하는 것을 권장함)
  • 그 후 암시적으로 install 명령을 수행하여 해당 의존성 라이브러리들을 다운받는다.

이미 composer.lock 파일이 존재 하는경우(버전관리 시스템에 커밋된 lock 파일을 받은 경우), install 명령을 해주면 된다.

php composer.phar install

끝. 프로젝트 폴더의 vendor라는 폴더 하위에, 의존성 라이브러리들이 설치된다.

 

 

참고

https://getcomposer.org/doc/00-intro.md

'개발 > PHP' 카테고리의 다른 글

[PHP] OPcache 정보 보기  (0) 2024.02.24
[PHP] PHP의 철학  (0) 2024.02.22
PHP opcache 적용  (0) 2023.02.20
[PHP] PHP-FPM 적용하기 (Centos7)  (0) 2023.02.17
[PHP] 윈도우에서 php 7.4로 업그레이드 및 VScode 디버깅 설정  (0) 2023.02.07

+ Recent posts