몽상실현개발주의

[생활코딩] 17.12 컴포저 (composer) 본문

Language/php

[생활코딩] 17.12 컴포저 (composer)

migrationArc 2021. 6. 8. 14:42

[생활코딩] 17.12 컴포저 (composer)

생활코딩 php 강좌

17. PHP의 객체 지향 프로그래밍

17.12 컴포저 (composer)

  • Composer : Package Manager
    • 현대적인 php 라이브러리들은 대체로 객체지향 형식으로 개발
    • 컴포저를 활용하면 다른 사람이 만들어둔 라이브러리를 부품처럼 사용 할 수 있음
    • php 파트에 대한 관리자 역할
  • composer 설치후, php Project 폴더에서
    • composer init
    • composer.json 파일 생성

 

// composer.json
{
  "name": "study/composer",
  "description": "forStudy",
  "authors": [
    {
      "name": "user name",
      "email": "user@email.com"
    }
  ],
  "require": {}
}
  • require
    • 사용하고 있는 (의존, 요구하는) Library 가 기록됨

 

// composer.json
{
  "name": "study/composer",
  "description": "forStudy",
  "authors": [
    {
      "name": "user name",
      "email": "user@email.com"
    }
  ],
  "require": {
    "monolog/monolog": "^2.2"
      // monolog package installed
  }
}
  • monolog 설치 후 composer.json
  • composer require monolog/monolog
    • monolog Library 설치 명령어

 

 

  • library 가 설치되면 ./vendor 폴더가 생성

 

 

<?php
// require_once __DIR__.'/bandor/monolog/monolog/src/Monolog/Logger.php';
// require_once __DIR__.'/bandor/monolog/monolog/src/Monolog/Handler/StreamHandler/Logger.php';
require_once __DIR__.'/vendor/autoload.php';

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

// create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler(__DIR__.'/app.log', Logger::WARNING));

// add records to the log
$log->warning('EGO');
$log->error('ING');
?>
  • 설치된 monolog Library 를 사용
  • 사용할 Library 를 각각 include 할 필요 없이, vendor 폴더에 생성된 autoloader.php 를 통해 한번에 처리 가능
  • composer 를 이용하면, 복잡한 의존성 문제와 파일 include 문제를 autoloader 로 편하게 해결

 

 

// composer.json
{
  "name": "study/composer",
  "description": "forStudy",
  "authors": [
    {
      "name": "user name",
      "email": "user@email.com"
    }
  ],
  "require": {
    "monolog/monolog": "^2.2"
  },
  "autoload": {
    "psr-4": {"Greeting\\":"source/Greeting/"}
  }
}
  • 생성한 file을 composer 를 이용하여 library 처럼 사용하기위해서는 composer.json 의 autoload 에 추가한 뒤, composer install 명령어를 사용한다.

 

 

// ~project/vendor/composer/autoload_psr4.php

<?php
// autoload_psr4.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'Greeting\\' => array($baseDir . '/source/Greeting'),
);
?>
  • 추가한 composer 의 autoload 에 추가한 Greeting 이 autoload 에 정상되어 있는 것을 확인 할 수 있다

 

 

 


이 글의 모든 사진과 내용의 출처는 생활코딩에 있음을 알려드립니다.

http://www.inflearn.com/course/%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9-php-%EA%B0%95%EC%A2%8C/lecture/230?tab=note

 

생활코딩 - PHP 기본 A 부터 Z 까지 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

 

Comments