차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
tech:php_composer [2015/08/31 00:44] V_Ltech:php_composer [2021/12/12 18:52] (현재) – [Php Composer] 61.74.132.138
줄 1: 줄 1:
 +{{tag>php composer}}
 ====== Php Composer ====== ====== Php Composer ======
    
 +컴포저는 현대적인 PHP 프로그래밍에서 빼 놓을수 없는 중요한 도구이며 PHP 로 프로젝트를 진행할 때 접하게 되는 가장 골치 아픈 문제인 의존성 문제를 해결해 주는 의존성 관리자임.
  
-Composer는 PHP를 위한 의존성 관리도구다. 이 도구를 사용해 해당 프로젝트에서 요구하는, 의존적인 라이브러리를 선언해 프로젝트에서 설치해 사용할 수 있도록 돕는다. 
  
-npm이나 apt, pip같은 것들과는 닮았지만 다른 부분이 많은데 그만큼 PHP라는 언어에 대한 고민의 흔적을 느낄 수 있다.+npm이나 apt, pip같은 것들과는 닮았지만 다른 부분이 많은데 그만큼 PHP라는 언어에 대한 고민의 흔적을 느낄 수 있다. [[tech:도쿠위키|]]에서 Release 2015-08-10a "Detritus" 부터 사용한다.
  
   * https://getcomposer.org/   * https://getcomposer.org/
  
 + 
  
-===== 의존성 관리도구 ===== +Composer는 패키지 관리도구가 아니다. 물론 각 프로젝트 단위로 패키지나 라이브러리를 다룬다면 그런 역할을 할 수 있다. 하지만 이 패키지나 라이브러리는 프로젝트 내 디렉토리 단위로 설치된다. (예로 vender) 기본적으로 composer는 __절대 전역적으로 사용하도록 설치하지 않는다__. 그러므로 **의존성 관리도구**라고 부른다.
- +
-Composer는 패키지 관리도구가 아니다. 물론 각 프로젝트 단위로 패키지나 라이브러리를 다룬다면 그런 역할을 할 수 있다. 하지만 이 패키지나 라이브러리는 프로젝트 내 디렉토리 단위로 설치된다. (예로 vender) 기본적으로 composer는 절대 전역적으로 사용하도록 설치하지 않는다. 그러므로 의존성 관리도구라고 부른다. +
  
 이 아이디어는 새로운 것이 아니며 Composer는 nodejs의 npm이나 ruby의 bundler에 커다란 영감을 얻어 만들어졌다. 그러나 이러한 도구는 PHP에 적합하지 않았다. 이 아이디어는 새로운 것이 아니며 Composer는 nodejs의 npm이나 ruby의 bundler에 커다란 영감을 얻어 만들어졌다. 그러나 이러한 도구는 PHP에 적합하지 않았다.
줄 23: 줄 22:
   -  Composer는 설치할 필요가 있는 패키지 버전을 찾아 설치한다. (프로젝트 안으로 설치한다는 뜻이다)   -  Composer는 설치할 필요가 있는 패키지 버전을 찾아 설치한다. (프로젝트 안으로 설치한다는 뜻이다)
  
-===== 의존성 선언 =====+개발하는 소프트웨어의 규모가 커지고 외부 라이브러리를 많이 사용할 수록 의존성 지옥에 빠지기 쉬운 이유중 하나는 라이브러리의 버전을 변경할 때 어떤 규칙에 의해서 버전이 매겨지는지 통용되는 명확한 규칙이 없기 때문입니다.
  
-프로젝트를 생성할 때 필요로 는 라이브러리를 적어줘야 한다. 예를 들어 monolog를 프로젝트에서 사용하기로 결정했다고 치자. 그렇다면 필요로 하는 것은 composer.json 파일을 생성하고 프로젝트의 의존성을 명시적으로 작성해주면 된다.+유의적 버전([[Semantic versioning]])은 이런 의존성 문제를 해결고자 나온 라이브러리의 버전 명시 규칙과 요구 사항이다.
  
-<file> 
-{ 
-    "require": { 
-        "monolog/monolog": "1.2.*" 
-    } 
-} 
-</file> 
  
-===== 시스템 요구사항 =====+=====설치===== 
 + 
 +==== 시스템 요구사항 ====
  
 Composer는 동작하기 위해 PHP 5.3.2 이상을 요구한다. 또한 몇가지의 php 세팅과 컴파일 플래그를 필수적으로 요구하며 설치할 때 적합하지 않은 부분에 대해 경고해줄 것이다. Composer는 동작하기 위해 PHP 5.3.2 이상을 요구한다. 또한 몇가지의 php 세팅과 컴파일 플래그를 필수적으로 요구하며 설치할 때 적합하지 않은 부분에 대해 경고해줄 것이다.
줄 42: 줄 36:
  
 Composer는 멀티플랫폼을 지원하며 Windows, Linux와 OSX에서 동일하게 동작하도록 만들기 위해 노력하고 있다. Composer는 멀티플랫폼을 지원하며 Windows, Linux와 OSX에서 동일하게 동작하도록 만들기 위해 노력하고 있다.
- +==== *nix 환경 설치 ====
-===== *nix 환경 설치 =====+
  
 실행 가능한 composer 다운로드하기 실행 가능한 composer 다운로드하기
-==== 지역 설치 (locally) ===+=== 지역 설치 (locally) ===
  
 Composer를 받기 위해서는 두가지가 필요하다. 첫째로 Composer를 설치하는 것이다. (프로젝트에 Composer를 내려받는다는 의미): Composer를 받기 위해서는 두가지가 필요하다. 첫째로 Composer를 설치하는 것이다. (프로젝트에 Composer를 내려받는다는 의미):
줄 57: 줄 49:
  
   $ curl -sS https://getcomposer.org/installer | php -- --install-dir=bin   $ curl -sS https://getcomposer.org/installer | php -- --install-dir=bin
-==== 전역 설치 (Globally) ===+=== 전역 설치 (Globally) ===
  
 이 파일은 어디든 원하는 곳에 위치할 수 있다. 이 파일의 위치를 PATH 환경변수에 지정된 곳에 넣어두면 전역적으로 사용할 수 있다. unix와 같은 시스템에서 php 없이 실행할 수 있도록 만들 수도 있다. 이 파일은 어디든 원하는 곳에 위치할 수 있다. 이 파일의 위치를 PATH 환경변수에 지정된 곳에 넣어두면 전역적으로 사용할 수 있다. unix와 같은 시스템에서 php 없이 실행할 수 있도록 만들 수도 있다.
줄 70: 줄 61:
 그리고 php composer.phar로 실행하는 대신 composer로 실행하면 된다. 그리고 php composer.phar로 실행하는 대신 composer로 실행하면 된다.
  
-==== 전역 설치 (homebrew를 이용해 OSX에서 설치) ===+=== 전역 설치 (homebrew를 이용해 OSX에서 설치) ===
  
 Composer는 homebrew-php 프로젝트의 일부다. Composer는 homebrew-php 프로젝트의 일부다.
줄 80: 줄 70:
 노트: PHP53 또는 그 이상의 버전이 존재하지 않는다는 에러가 나타나면 brew install php53-intl로 설치한다. 노트: PHP53 또는 그 이상의 버전이 존재하지 않는다는 에러가 나타나면 brew install php53-intl로 설치한다.
  
-===== Windows 환경 설치 =====+==== Windows 환경 설치 ====
  
-==== 인스톨러 이용 ====+=== 인스톨러 이용 ===
  
 Composer를 설치하기 가장 쉬운 방법이다. Composer를 설치하기 가장 쉬운 방법이다.
줄 88: 줄 78:
 Composer-Setup.exe 를 내려받아 실행한다. 이 인스톨러는 가장 최신 버전의 Composer를 PATH로 설정된 경로에 설치해 어느 경로에서든 composer 명령어를 사용할 수 있도록 해준다. Composer-Setup.exe 를 내려받아 실행한다. 이 인스톨러는 가장 최신 버전의 Composer를 PATH로 설정된 경로에 설치해 어느 경로에서든 composer 명령어를 사용할 수 있도록 해준다.
  
-==== 수동 설치 ====+=== 수동 설치 ===
  
 PATH 경로로 이동해 설치 스니핏을 실행하여 composer.phar를 내려받는다: PATH 경로로 이동해 설치 스니핏을 실행하여 composer.phar를 내려받는다:
줄 106: 줄 96:
 ===== Composer 사용하기 ===== ===== Composer 사용하기 =====
  
 +==== 의존성 선언 ====
 +
 +프로젝트를 생성할 때 필요로 하는 라이브러리를 적어줘야 한다. 예를 들어 monolog를 프로젝트에서 사용하기로 결정했다고 치자. 그렇다면 필요로 하는 것은 composer.json 파일을 생성하고 프로젝트의 의존성을 명시적으로 작성해주면 된다.
 +
 +<file>
 +{
 +    "require": {
 +        "monolog/monolog": "1.2.*"
 +    }
 +}
 +</file>
 이제 Composer를 사용해 프로젝트에서 의존하고 있는 라이브러리를 내려받는다. composer.json 파일이 현재 디렉토리에 존재하지 않는다면 Basic Usage 챕터로 넘어가도 된다. 이제 Composer를 사용해 프로젝트에서 의존하고 있는 라이브러리를 내려받는다. composer.json 파일이 현재 디렉토리에 존재하지 않는다면 Basic Usage 챕터로 넘어가도 된다.
  
줄 125: 줄 126:
 출처  [[http://haruair.com/blog/1860|Haruair - PHP 의존성 관리도구 – Composer 시작하기]] 출처  [[http://haruair.com/blog/1860|Haruair - PHP 의존성 관리도구 – Composer 시작하기]]
  
-{{tag>php composer}}+