IMG-LOGO
공지사항 :

PHP Composer

lmkfox - 2025-09-07 06:37:03 26 Views 0 Comment

1. Composer의 역할

  1. 라이브러리 관리

    프로젝트에서 필요한 패키지(예: 라라벨, 심포니, Guzzle HTTP 클라이언트 등)를 쉽게 설치할 수 있습니다.

  2. 버전 관리

    특정 버전의 패키지를 명시하거나, 버전 범위를 지정해서 업데이트 시 안정성을 유지할 수 있습니다.

  3. 자동 로딩(Autoloading)

    설치된 라이브러리의 클래스를 require 'vendor/autoload.php' 한 줄로 자동 불러올 수 있습니다. PSR-4 방식의 네임스페이스 오토로딩도 지원합니다.


2. Composer 설치

Linux / macOS

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer

Windows

  • getcomposer.org에서 Windows Installer를 다운로드 후 실행하면 PATH에 자동 등록됩니다.

설치 확인:

composer -V


3. 기본 사용법

1) 프로젝트 초기화

composer init

composer.json 파일이 생성되며, 프로젝트 이름, 라이선스, 의존성 등을 설정합니다.

2) 패키지 설치

composer require guzzlehttp/guzzle

→ vendor/ 디렉토리에 패키지가 설치되고, composer.json 및 composer.lock 파일이 업데이트됩니다.

3) 의존성 설치

composer install

→ composer.lock을 기준으로 의존성을 설치합니다. (프로젝트를 새로 클론했을 때 사용)

4) 패키지 업데이트

composer update

→ composer.json에 맞춰 최신 버전으로 업데이트합니다.


4. 주요 파일

  • composer.json

    프로젝트의 의존성, PHP 버전 요구 사항, 오토로딩 규칙 등을 정의하는 파일.

    예시:

{
  "require": {
    "monolog/monolog": "^3.0"
  },
  "autoload": {
    "psr-4": {
      "App\\": "src/"
    }
  }
}

  • composer.lock

    실제 설치된 패키지의 버전이 기록되는 파일. 팀 프로젝트에서는 이 파일을 Git에 커밋해두어 동일한 환경을 보장합니다.

  • vendor/

    모든 외부 라이브러리가 설치되는 디렉토리.


5. 오토로딩 사용 예시

<?php
require 'vendor/autoload.php';

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

$log = new Logger('app');
$log->pushHandler(new StreamHandler('app.log', Logger::WARNING));

$log->warning('경고 메시지');
$log->error('에러 메시지');


6. Composer의 장점

  • 라이브러리 설치 및 관리 자동화

  • 버전 충돌 최소화

  • 오토로딩 지원으로 코드 간결화

  • PHP 생태계의 풍부한 패키지(Packagist와 연동) 활용 가능


댓글