차이

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

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
tech:php_composer [2021/12/12 18:47] 61.74.132.138tech:php_composer [2021/12/12 18:52] (현재) – [Php Composer] 61.74.132.138
줄 9: 줄 9:
   * https://getcomposer.org/   * https://getcomposer.org/
  
-===== 의존성 관리도구 =====+ 
  
-Composer는 패키지 관리도구가 아니다. 물론 각 프로젝트 단위로 패키지나 라이브러리를 다룬다면 그런 역할을 할 수 있다. 하지만 이 패키지나 라이브러리는 프로젝트 내 디렉토리 단위로 설치된다. (예로 vender) 기본적으로 composer는 __절대 전역적으로 사용하도록 설치하지 않는다__. 그러므로 의존성 관리도구라고 부른다.+Composer는 패키지 관리도구가 아니다. 물론 각 프로젝트 단위로 패키지나 라이브러리를 다룬다면 그런 역할을 할 수 있다. 하지만 이 패키지나 라이브러리는 프로젝트 내 디렉토리 단위로 설치된다. (예로 vender) 기본적으로 composer는 __절대 전역적으로 사용하도록 설치하지 않는다__. 그러므로 **의존성 관리도구**라고 부른다.
  
 이 아이디어는 새로운 것이 아니며 Composer는 nodejs의 npm이나 ruby의 bundler에 커다란 영감을 얻어 만들어졌다. 그러나 이러한 도구는 PHP에 적합하지 않았다. 이 아이디어는 새로운 것이 아니며 Composer는 nodejs의 npm이나 ruby의 bundler에 커다란 영감을 얻어 만들어졌다. 그러나 이러한 도구는 PHP에 적합하지 않았다.
줄 22: 줄 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 세팅과 컴파일 플래그를 필수적으로 요구하며 설치할 때 적합하지 않은 부분에 대해 경고해줄 것이다.
줄 41: 줄 36:
  
 Composer는 멀티플랫폼을 지원하며 Windows, Linux와 OSX에서 동일하게 동작하도록 만들기 위해 노력하고 있다. Composer는 멀티플랫폼을 지원하며 Windows, Linux와 OSX에서 동일하게 동작하도록 만들기 위해 노력하고 있다.
-=====설치===== 
 ==== *nix 환경 설치 ==== ==== *nix 환경 설치 ====
  
줄 102: 줄 96:
 ===== Composer 사용하기 ===== ===== Composer 사용하기 =====
  
 +==== 의존성 선언 ====
 +
 +프로젝트를 생성할 때 필요로 하는 라이브러리를 적어줘야 한다. 예를 들어 monolog를 프로젝트에서 사용하기로 결정했다고 치자. 그렇다면 필요로 하는 것은 composer.json 파일을 생성하고 프로젝트의 의존성을 명시적으로 작성해주면 된다.
 +
 +<file>
 +{
 +    "require": {
 +        "monolog/monolog": "1.2.*"
 +    }
 +}
 +</file>
 이제 Composer를 사용해 프로젝트에서 의존하고 있는 라이브러리를 내려받는다. composer.json 파일이 현재 디렉토리에 존재하지 않는다면 Basic Usage 챕터로 넘어가도 된다. 이제 Composer를 사용해 프로젝트에서 의존하고 있는 라이브러리를 내려받는다. composer.json 파일이 현재 디렉토리에 존재하지 않는다면 Basic Usage 챕터로 넘어가도 된다.