찾기
내용으로 건너뛰기
추적
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
{{tag>php composer}} ====== Php Composer ====== 컴포저는 현대적인 [[PHP]] 프로그래밍에서 빼 놓을수 없는 중요한 도구이며 PHP 로 프로젝트를 진행할 때 접하게 되는 가장 골치 아픈 문제인 의존성 문제를 해결해 주는 **의존성 관리자**임. npm이나 apt, pip같은 것들과는 닮았지만 다른 부분이 많은데 그만큼 PHP라는 언어에 대한 고민의 흔적을 느낄 수 있다. [[tech:도쿠위키|]]에서 Release 2015-08-10a "Detritus" 부터 사용한다. * https://getcomposer.org/ Composer는 패키지 관리도구가 아니다. 물론 각 프로젝트 단위로 패키지나 라이브러리를 다룬다면 그런 역할을 할 수 있다. 하지만 이 패키지나 라이브러리는 프로젝트 내 디렉토리 단위로 설치된다. (예로 vender) 기본적으로 composer는 __절대 전역적으로 사용하도록 설치하지 않는다__. 그러므로 **의존성 관리도구**라고 부른다. 이 아이디어는 새로운 것이 아니며 Composer는 nodejs의 npm이나 ruby의 bundler에 커다란 영감을 얻어 만들어졌다. 그러나 이러한 도구는 PHP에 적합하지 않았다. Composer가 해결한 문제는 다음과 같다: - 프로젝트가 여러개의 라이브러리에 의존적이다 - 몇 라이브러리가 다른 라이브러리에 의존성이 있다 - 무엇에 의존성이 있는지 선언할 수 있다 - Composer는 설치할 필요가 있는 패키지 버전을 찾아 설치한다. (프로젝트 안으로 설치한다는 뜻이다) 개발하는 소프트웨어의 규모가 커지고 외부 라이브러리를 많이 사용할 수록 의존성 지옥에 빠지기 쉬운 이유중 하나는 라이브러리의 버전을 변경할 때 어떤 규칙에 의해서 버전이 매겨지는지 통용되는 명확한 규칙이 없기 때문입니다. [[Semantic versioning]]은 이런 의존성 문제를 해결하고자 나온 라이브러리의 버전 명시 규칙과 요구 사항이다. =====설치===== ==== 시스템 요구사항 ==== Composer는 동작하기 위해 PHP 5.3.2 이상을 요구한다. 또한 몇가지의 php 세팅과 컴파일 플래그를 필수적으로 요구하며 설치할 때 적합하지 않은 부분에 대해 경고해줄 것이다. 소스로부터 패키지를 설치할 때 단순히 zip 압축파일을 받는 대신 어떻게 패키지가 버전관리 되는지에 따라 git, svn 또는 hg가 필요할 것이다. Composer는 멀티플랫폼을 지원하며 Windows, Linux와 OSX에서 동일하게 동작하도록 만들기 위해 노력하고 있다. ==== *nix 환경 설치 ==== 실행 가능한 composer 다운로드하기 === 지역 설치 (locally) === Composer를 받기 위해서는 두가지가 필요하다. 첫째로 Composer를 설치하는 것이다. (프로젝트에 Composer를 내려받는다는 의미): $ curl -sS https://getcomposer.org/installer | php 이 과정은 요구되는 PHP 세팅 몇가지를 확인한 후 composer.phar를 작업 디렉토리에 내려받는다. 이 파일은 Composer 바이너리이며 PHAR(PHP 아카이브)로 PHP를 커맨드 라인으로 실행할 수 있도록 해주는 아카이브 포맷이다. 당신은 Composer를 --install-dir 옵션과 함께 경로 디렉토리를 입력해 특정 디렉토리에 설치가 가능하다 (절대경로와 상대경로 모두 가능): $ curl -sS https://getcomposer.org/installer | php -- --install-dir=bin === 전역 설치 (Globally) === 이 파일은 어디든 원하는 곳에 위치할 수 있다. 이 파일의 위치를 PATH 환경변수에 지정된 곳에 넣어두면 전역적으로 사용할 수 있다. unix와 같은 시스템에서 php 없이 실행할 수 있도록 만들 수도 있다. 아래의 명령어는 composer로 시스템 어디에서든 쉽게 실행할 수 있도록 한다: $ curl -sS https://getcomposer.org/installer | php $ mv composer.phar /usr/local/bin/composer 노트: 권한 문제가 있다면 mv 부분은 sudo를 이용해 다시 실행한다. 그리고 php composer.phar로 실행하는 대신 composer로 실행하면 된다. === 전역 설치 (homebrew를 이용해 OSX에서 설치) === Composer는 homebrew-php 프로젝트의 일부다. homebrew-php가 아직 설치되지 않았다면 brew를 통해 설치: brew tap josegonzalez/homebrew-php brew install josegonzalez/php/composer를 실행 composer 명령어로 사용 노트: PHP53 또는 그 이상의 버전이 존재하지 않는다는 에러가 나타나면 brew install php53-intl로 설치한다. ==== Windows 환경 설치 ==== === 인스톨러 이용 === Composer를 설치하기 가장 쉬운 방법이다. Composer-Setup.exe 를 내려받아 실행한다. 이 인스톨러는 가장 최신 버전의 Composer를 PATH로 설정된 경로에 설치해 어느 경로에서든 composer 명령어를 사용할 수 있도록 해준다. === 수동 설치 === PATH 경로로 이동해 설치 스니핏을 실행하여 composer.phar를 내려받는다: C:\Users\username>cd C:\bin C:\bin>php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));" 노트: 위 내용 중 file_get_contents 함수가 동작하지 않는다면 http 주소로 내려받거나 php.ini에 php_openssl.dll를 활성화한다. composer.phar를 위한 composer.bat를 생성한다: C:\bin>echo @php "%~dp0composer.phar" %*>composer.bat 현재 터미널을 닫고 새 터미널에서 아래와 같이 테스트한다: C:\Users\username>composer -V Composer version 27d8904 C:\Users\username> ===== 확인===== composer -V <file> Composer version 2.7.6 2024-05-04 23:03:15 PHP version 8.1.28 (/usr/bin/php8.1) Run the "diagnose" command to get more detailed diagnostics output. </file> composer diagnose <file> Checking composer.json: WARNING No license specified, it is recommended to do so. For closed-source software you may use "proprietary" as license. Checking platform settings: OK Checking git settings: OK git version 2.25.1 Checking http connectivity to packagist: OK Checking https connectivity to packagist: OK Checking github.com rate limit: OK Checking disk free space: OK Checking pubkeys: Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642 Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952 OK Checking Composer version: OK Checking Composer and its dependencies for vulnerabilities: OK Composer version: 2.7.6 PHP version: 8.3.7 PHP binary path: /usr/bin/php8.3 OpenSSL version: OpenSSL 1.1.1f 31 Mar 2020 curl version: 7.68.0 libz 1.2.11 ssl OpenSSL/1.1.1f zip: extension present, unzip present, 7-Zip not available </file> ===== Composer 사용하기 ===== ==== 의존성 선언 ==== 프로젝트를 생성할 때 필요로 하는 라이브러리를 적어줘야 한다. 예를 들어 [[monolog]]를 프로젝트에서 사용하기로 결정했다고 치자. 그렇다면 필요로 하는 것은 composer.json 파일을 생성하고 프로젝트의 의존성을 명시적으로 작성해주면 된다. <file> { "require": { "monolog/monolog": "1.2.*" } } </file> 이제 Composer를 사용해 프로젝트에서 의존하고 있는 라이브러리를 내려받는다. composer.json 파일이 현재 디렉토리에 존재하지 않는다면 Basic Usage 챕터로 넘어가도 된다. 의존적인 라이브러리를 내려받기 위해서, install 명령어를 실행한다: $ php composer.phar install 전역 설치를 했다면 phar 없이 아래와 같이 실행한다: $ composer install 위에서 예로 들었던 부분에 따라, 위 명령어를 통해 monolog를 vendor/monolog/monolog 디렉토리로 내려받게 된다. ===== 자동 불러오기 ===== 라이브러리를 다운받는 것 이외에 Composer는 어떤 라이브러리든 자동으로 적합한 라이브러리를 불러와 사용하도록 돕는다. 자동 불러오기를 사용하려면 단지 아래의 코드를 넣어준다: require 'vendor/autoload.php'; 이제 monolog를 바로 사용할 수 있다. Composer에 대해 더 배우기 위해서는 [[https://getcomposer.org/doc/01-basic-usage.md|Basic Usage]] 챕터를 참고한다. 출처 [[http://haruair.com/blog/1860|Haruair - PHP 의존성 관리도구 – Composer 시작하기]]
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
Monolog
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
기술
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
hygiene_hypothesis
[위생 가설 (Hygiene Hypothesis)]
diet
[신장별 표준체중 구하는 법(단위:kg)]
유산_사산_휴가_기간
[유산/사산 후 근로기준법 상 휴가기간]
기아
robot
low_insulin_diet
[과일]
jga25_-_370
mpu6050
esp32
i2c
[i²c]
게으름
sleep
nms
이전 판으로 되돌림 (2022/08/04 08:36)
항성계
이전 판으로 되돌림 (2022/02/16 06:57)
깨시닙ㄲ
제거됨
은하중심
이전 판으로 되돌림 (2022/06/22 15:25)
ovulation_induction
이전 판으로 되돌림 (2025/08/25 07:40)