Child pages
  • PHP Composer 설치 및 사용법

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

 


설치

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

...

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

 


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

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

 


Windows

자동 설치

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

 


수동 설치

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

    Code Block
    php -r "readfile('https://getcomposer.org/installer');" | php
  4. composer.phar 이 있는 디렉터리에서 composer.bat 이름으로 배치 파일을 작성한다.

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

 


사용

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

...

Code Block
composer require monolog/monolog 1.11.\*

 


패키지 설치

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

Code Block
composer install

 


패키지 갱신

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

Code Block
composer update

 


Autoloading

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

Code Block
require 'vendor/autoload.php';

 


개발 브랜치 사용하기

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

...

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

composer config

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

설정 보기

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

Code Block
composer config --list

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

Code Block
composer global config --list


설정

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

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

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

Code Block
composer global config minimum-stability dev


composer로 신규 프로젝트 만들기

...

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

 


새로 생성

  1. 프로젝트 폴더 생성

    Code Block
    $ mkdir monolog-eloquent
    $ cd monolog-eloquent
  2. 프로젝트 초기화

    Code Block
    $ composer init
  3. 프로젝트 설정 입력

    Expand
    Panel


    Welcome to the Composer config generator


    This command will guide you through creating your composer.json config.

    Package name (<vendor>/<name>) [root/monolog-eloquent]: lesstif/monolog-eloquent
    Description []: Eloquent ORM driver for Laravel Monolog.
    Author [KwangSeob Jeong <lesstif@gmail.com>]:
    Minimum Stability []:
    Package Type []:
    License []: MIT

    Define your dependencies.

    Would you like to define your dependencies (require) interactively [yes]?
    Search for a package: laravel


    Found 15 packages matching laravel

    [0] laravel/laravel
    [1] laravel/framework
    [2] artdarek/oauth-4-laravel
    [3] jelovac/bitly4laravel
    [4] laravel/installer

    Enter package # to add, or the complete package name if it is not listed: 1
    Enter the version constraint to require (or leave blank to use the latest version): ~5.0
    Search for a package:
    Would you like to define your dev dependencies (require-dev) interactively [yes]?
    Search for a package: phpunit

    Found 15 packages matching phpunit

    [0] phpunit/phpunit
    [1] phpunit/phpunit-mock-objects
    [2] phpunit/phpunit-selenium


    Enter package # to add, or the complete package name if it is not listed: 0
    Enter the version constraint to require (or leave blank to use the latest version): ~4.0

    Search for a package:

    {
    "name": "lesstif/monolog-eloquent",
    "description": "Eloquent ORM driver for Laravel Monolog.",
    "require": {
    "laravel/framework": "~5.0"
    },
    "require-dev": {
    "phpunit/phpunit": "~4.0"
    },
    "license": "MIT",
    "authors": [
    {
    "name": "KwangSeob Jeong",
    "email": "lesstif@gmail.com"
    }
    ]
    }

    Do you confirm generation [yes]?

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

    Code Block
    # 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
  6. composer install 로 의존성 패키지 설치

    Code Block
    $ composer install

 


같이 보기

 


Ref