본문 바로가기
  • AI (Artificial Intelligence)
Programming/PHP

PHP Composer 설치 및 사용법

by 로샤스 2020. 9. 14.

Ref. www.lesstif.com/php-and-laravel/php-composer-23757293.html

composer 는 ruby 의 bundle 처럼 패키지간의 의존성을 관리해 주는 유틸리티이다.

설치

  • PHP 5.3.2+  이상이 필요하다.
  • openssl extension 이 활성화되어야 한다.

Linux/Unix/Mac OS X

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin/

Copy

CODE

또는 curl 이 없을 경우 php 로 바로 설치. (https 관련 에러가 날 경우 php.ini 의 openssl extension 이 주석해제 되었는지 확인)

php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/local/bin/

Copy

CODE

 

사용하기 쉽게 symbolic link 를 건다.

sudo ln -s /usr/local/bin/composer.phar /usr/local/bin/composer

Copy

CODE

 

Windows

자동 설치

  1. 설치 프로그램을 다운로드 받아 실행 https://getcomposer.org/Composer-Setup.exe 

 

수동 설치

  1. cmd.exe 를 연다.
  2. PATH 가 걸린 디렉터리로 이동한다.
  3. 다음 명령어를 실행하면 composer.phar 이 설치된다.

    php -r "readfile('https://getcomposer.org/installer');" | php

    Copy

    CODE

  4. composer.phar 이 있는 디렉터리에서 composer.bat 이름으로 배치 파일을 작성한다.

    @ECHO OFF php "%~dp0composer.phar" %*

    Copy

    CODE

 

사용

명령어 없이 실행하면 사용 가능한 명령어 목록을 출력한다.

 Click here to expand...

composer.json

프로젝트 설정은 composer.json 파일에 기술하며 의존성 항목은 require 항목으로 기술한다. require 는 "owner/packagename" : "version" 형식으로 기술한다.

{ "name": "lesstif/my-project", "require": { "laravel/framework": "4.2.*", "kmd/logviewer": "1.2.*", "monolog/monolog": "1.11.*" "netresearch/jsonmapper" : "*" }, }

Copy

CODE

버전은 기본적으로 프로젝트의 tags 디렉터리에서 찾으며 -dev 가 붙을 경우 branches 에서 가져 오게 된다. (버전 명명법 보기)

더 자세한 내용은 의존성 지옥(dependency hell), 유의적 버전(Semantic Versioning)을 참고


require 구문은 composer.json 에 직접 기술해도 되지만 require 명령을 사용하는게 더 간편하다.

composer require monolog/monolog 1.11.\*

Copy

CODE

 

패키지 설치

composer.json 에 필요한 패키지를 다 기술했으면 install 명령어로 설치할 수 있다. 설치된 패키지는 vendor 폴더밑에 위치한다.

composer install

Copy

CODE

 

패키지 갱신

composer.json 파일이 변경되었으면 update 명령어로 반영할 수 있다.

composer update

Copy

CODE

 

Autoloading

composer 로 설치한 library 들은 autoload.php 에 등록되므로 PHP 개발시에 필요한 라이브러리를 일일이 require 구문을 사용하지 않고 다음 문장 하나만 적어 주면 된다. 

require 'vendor/autoload.php';

Copy

CODE

 

개발 브랜치 사용하기

버전 항목을 "dev-master" 로 설정하면 릴리스 되지 않은 master 브랜치의 마지막 버전을 가져 옴.

{ "require": { "lesstif/php-jira-rest-client": "dev-master" } }

Copy

CODE

develop 브랜치를 사용할 경우 "dev-master" 대신  "dev-develop" 로 지정

{ "require": { "lesstif/php-jira-rest-client": "dev-develop" } }

Copy

CODE

composer config

config 옵션으로 composer 의 기본 동작을 제어하는 옵션을 설정할 수 있음.

설정 보기

composer.json 이 있는 폴더에서 아래 명령을 실행하여 현재 설정을 출력

composer config --list

Copy

CODE

전역 설정을 보려면 global 옵션을 추가

composer global config --list

Copy

CODE

 

설정

config 명령뒤에 설정할 key value 를 입력

composer config repositories.foo vcs https://github.com/foo/bar

Copy

CODE

전역적으로 설정할 경우 config 앞에 global 키워드 추가

composer global config minimum-stability dev

Copy

CODE

 

composer로 신규 프로젝트 만들기

기존 프로젝트 복제하여 생성

옵션에 프로젝트 명을 주면 기존 프로젝트를 설치하면서 프로젝트 생성. 마지막 옵션(2.2.*) 은 사용할 버전이며 생략시 최신 버전이 사용됨.

php composer.phar create-project doctrine/orm path/to/my-cloned-project 2.2.*

Copy

CODE

 

새로 생성

  1. 프로젝트 폴더 생성

    $ mkdir monolog-eloquent $ cd monolog-eloquent

    Copy

    CODE

  2. 프로젝트 초기화

    $ composer init

    Copy

    CODE

  3. 프로젝트 설정 입력

     Click here to expand...

  4. composer.json 이 생성됨.
  5. .gitignore 파일 생성(https://www.gitignore.io/api/vim,laravel,composer)

    # Created by https://www.gitignore.io ### Vim ### [._]*.s[a-w][a-z] [._]s[a-w][a-z] *.un~ Session.vim .netrwhist *~ ### Laravel ### /bootstrap/compiled.php .env.*.php .env.php .env ### Composer ### composer.phar vendor/ # Commit your application's lock file http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file # You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file # composer.lock

    Copy

    CODE

  6. composer install 로 의존성 패키지 설치

    $ composer install

    Copy

    CODE

 

같이 보기

 

Ref

 

댓글