Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Math
- C언어
- programmers
- sorting
- JavaScript
- 정수론
- 생활코딩
- BASIC
- BFS
- DP
- server
- BOJ
- 인프런
- udemy
- 백준
- 종만북
- 따라하며 배우는 C언어
- graph
- web
- C
- greedy
- Python
- php
- String
- 따배씨
- Cleancode
- dfs
- Algorithm
- Algospot
- 따라하면서 배우는 C언어
Archives
- Today
- Total
몽상실현개발주의
[생활코딩] 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 에 정상되어 있는 것을 확인 할 수 있다
이 글의 모든 사진과 내용의 출처는 생활코딩에 있음을 알려드립니다.
'Language > php' 카테고리의 다른 글
[생활코딩] 17.13~15 상속 (0) | 2021.06.08 |
---|---|
[생활코딩] 17.11 네임스페이스 (0) | 2021.06.08 |
[생활코딩] 17.10 클래스 로딩 (0) | 2021.06.08 |
[생활코딩] 17.9 클래스 멤버 만들기 (static) (0) | 2021.06.08 |
[생활코딩] 17.8 상속 기본 (inheritance) (0) | 2021.06.06 |
Comments