차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
tech:php_composer [2021/12/12 18:46] – [의존성 관리도구] 61.74.132.138 | tech:php_composer [2021/12/12 18:52] (현재) – [Php Composer] 61.74.132.138 | ||
---|---|---|---|
줄 9: | 줄 9: | ||
* https:// | * https:// | ||
- | ===== 의존성 관리도구 ===== | + | |
- | Composer는 패키지 관리도구가 아니다. 물론 각 프로젝트 단위로 패키지나 라이브러리를 다룬다면 그런 역할을 할 수 있다. 하지만 이 패키지나 라이브러리는 프로젝트 내 디렉토리 단위로 설치된다. (예로 vender) 기본적으로 composer는 __절대 전역적으로 사용하도록 설치하지 않는다__. 그러므로 의존성 관리도구라고 부른다. | + | Composer는 패키지 관리도구가 아니다. 물론 각 프로젝트 단위로 패키지나 라이브러리를 다룬다면 그런 역할을 할 수 있다. 하지만 이 패키지나 라이브러리는 프로젝트 내 디렉토리 단위로 설치된다. (예로 vender) 기본적으로 composer는 __절대 전역적으로 사용하도록 설치하지 않는다__. 그러므로 |
이 아이디어는 새로운 것이 아니며 Composer는 nodejs의 npm이나 ruby의 bundler에 커다란 영감을 얻어 만들어졌다. 그러나 이러한 도구는 PHP에 적합하지 않았다. | 이 아이디어는 새로운 것이 아니며 Composer는 nodejs의 npm이나 ruby의 bundler에 커다란 영감을 얻어 만들어졌다. 그러나 이러한 도구는 PHP에 적합하지 않았다. | ||
줄 22: | 줄 22: | ||
- Composer는 설치할 필요가 있는 패키지 버전을 찾아 설치한다. (프로젝트 안으로 설치한다는 뜻이다) | - Composer는 설치할 필요가 있는 패키지 버전을 찾아 설치한다. (프로젝트 안으로 설치한다는 뜻이다) | ||
- | ===== 의존성 | + | 개발하는 소프트웨어의 규모가 커지고 외부 라이브러리를 많이 사용할 수록 |
- | 프로젝트를 생성할 때 필요로 | + | 유의적 버전([[Semantic versioning]])은 이런 의존성 문제를 해결하고자 나온 |
- | < | ||
- | { | ||
- | " | ||
- | " | ||
- | } | ||
- | } | ||
- | </ | ||
- | ===== 시스템 요구사항 | + | =====설치===== |
+ | |||
+ | ==== 시스템 요구사항 ==== | ||
Composer는 동작하기 위해 PHP 5.3.2 이상을 요구한다. 또한 몇가지의 php 세팅과 컴파일 플래그를 필수적으로 요구하며 설치할 때 적합하지 않은 부분에 대해 경고해줄 것이다. | Composer는 동작하기 위해 PHP 5.3.2 이상을 요구한다. 또한 몇가지의 php 세팅과 컴파일 플래그를 필수적으로 요구하며 설치할 때 적합하지 않은 부분에 대해 경고해줄 것이다. | ||
줄 41: | 줄 36: | ||
Composer는 멀티플랫폼을 지원하며 Windows, Linux와 OSX에서 동일하게 동작하도록 만들기 위해 노력하고 있다. | Composer는 멀티플랫폼을 지원하며 Windows, Linux와 OSX에서 동일하게 동작하도록 만들기 위해 노력하고 있다. | ||
- | + | ==== *nix 환경 설치 ==== | |
- | ===== *nix 환경 설치 | + | |
실행 가능한 composer 다운로드하기 | 실행 가능한 composer 다운로드하기 | ||
- | ==== 지역 설치 (locally) | + | === 지역 설치 (locally) === |
Composer를 받기 위해서는 두가지가 필요하다. 첫째로 Composer를 설치하는 것이다. (프로젝트에 Composer를 내려받는다는 의미): | Composer를 받기 위해서는 두가지가 필요하다. 첫째로 Composer를 설치하는 것이다. (프로젝트에 Composer를 내려받는다는 의미): | ||
줄 55: | 줄 49: | ||
$ curl -sS https:// | $ curl -sS https:// | ||
- | ==== 전역 설치 (Globally) | + | === 전역 설치 (Globally) === |
이 파일은 어디든 원하는 곳에 위치할 수 있다. 이 파일의 위치를 PATH 환경변수에 지정된 곳에 넣어두면 전역적으로 사용할 수 있다. unix와 같은 시스템에서 php 없이 실행할 수 있도록 만들 수도 있다. | 이 파일은 어디든 원하는 곳에 위치할 수 있다. 이 파일의 위치를 PATH 환경변수에 지정된 곳에 넣어두면 전역적으로 사용할 수 있다. unix와 같은 시스템에서 php 없이 실행할 수 있도록 만들 수도 있다. | ||
줄 67: | 줄 61: | ||
그리고 php composer.phar로 실행하는 대신 composer로 실행하면 된다. | 그리고 php composer.phar로 실행하는 대신 composer로 실행하면 된다. | ||
- | ==== 전역 설치 (homebrew를 이용해 OSX에서 설치) | + | === 전역 설치 (homebrew를 이용해 OSX에서 설치) === |
Composer는 homebrew-php 프로젝트의 일부다. | Composer는 homebrew-php 프로젝트의 일부다. | ||
줄 76: | 줄 70: | ||
노트: PHP53 또는 그 이상의 버전이 존재하지 않는다는 에러가 나타나면 brew install php53-intl로 설치한다. | 노트: PHP53 또는 그 이상의 버전이 존재하지 않는다는 에러가 나타나면 brew install php53-intl로 설치한다. | ||
- | ===== Windows 환경 설치 | + | ==== Windows 환경 설치 ==== |
- | ==== 인스톨러 이용 | + | === 인스톨러 이용 === |
Composer를 설치하기 가장 쉬운 방법이다. | Composer를 설치하기 가장 쉬운 방법이다. | ||
줄 84: | 줄 78: | ||
Composer-Setup.exe 를 내려받아 실행한다. 이 인스톨러는 가장 최신 버전의 Composer를 PATH로 설정된 경로에 설치해 어느 경로에서든 composer 명령어를 사용할 수 있도록 해준다. | Composer-Setup.exe 를 내려받아 실행한다. 이 인스톨러는 가장 최신 버전의 Composer를 PATH로 설정된 경로에 설치해 어느 경로에서든 composer 명령어를 사용할 수 있도록 해준다. | ||
- | ==== 수동 설치 | + | === 수동 설치 === |
PATH 경로로 이동해 설치 스니핏을 실행하여 composer.phar를 내려받는다: | PATH 경로로 이동해 설치 스니핏을 실행하여 composer.phar를 내려받는다: | ||
줄 102: | 줄 96: | ||
===== Composer 사용하기 ===== | ===== Composer 사용하기 ===== | ||
+ | ==== 의존성 선언 ==== | ||
+ | |||
+ | 프로젝트를 생성할 때 필요로 하는 라이브러리를 적어줘야 한다. 예를 들어 monolog를 프로젝트에서 사용하기로 결정했다고 치자. 그렇다면 필요로 하는 것은 composer.json 파일을 생성하고 프로젝트의 의존성을 명시적으로 작성해주면 된다. | ||
+ | |||
+ | < | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | </ | ||
이제 Composer를 사용해 프로젝트에서 의존하고 있는 라이브러리를 내려받는다. composer.json 파일이 현재 디렉토리에 존재하지 않는다면 Basic Usage 챕터로 넘어가도 된다. | 이제 Composer를 사용해 프로젝트에서 의존하고 있는 라이브러리를 내려받는다. composer.json 파일이 현재 디렉토리에 존재하지 않는다면 Basic Usage 챕터로 넘어가도 된다. | ||