Composer는 PHP의 의존성 관리 도구로, PHP 프로젝트에 필요한 라이브러리, 패키지 등을 쉽게 관리하고 자동으로 설치해 주는 도구이다.
의존성 관리 : 해당 프로젝트에 필요한 라이브러리의 버전을 독립적으로 정의, 관리함으로써, 이를 바탕으로 설치, 업데이트, 제거할 수 있다.
자동 로딩 : 설치된 라이브러리의 클래스를 vendor/autoload.php에 설정함으로써, 라이브러리를 하나하나 수동으로 포함할 필요없이 autoload.php를 포함하는 것만으로 모든 라이브러리의 사용을 가능하게 한다.
{
"name": "my-project",
"require": {
"monolog/monolog": "^2.0",
"guzzlehttp/guzzle": "^7.0"
}
}
{
"packages": [
{
"name": "monolog/monolog",
"version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/monolog/monolog.git",
"reference": "abcdef1234567890"
}
},
{
"name": "guzzlehttp/guzzle",
"version": "7.0.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "123456abcdef7890"
}
}
]
}
// 보통 엔트리 포인트(index.php)에 해당 코드가 포함되어있음
require __DIR__.'/../vendor/autoload.php';
composer install : composer.lock에 정의된 패키지를 설치
composer update : 패키지를 업데이트한다. composer.json에 정의된 버전 범위의 최신 버전을 composer.lock에 반영 후, 해당 패키지를 설치한다.
composer require [package] : 지정된 패키지를 composer 파일에 추가/설치한다.
composer remove [package] : 지정된 패키지를 composer 파일에 제외/삭제한다.