너의 개발은/PHP

PHP: 의존성 관리자 — Composer

Composer

컴포저는 PHP 의 세계에서 쓰이는 패키지 매니저, 또는 의존성 관리자라고 이야기한다. 언제까지나 우리가 모든 코드를 구성하고 테스팅할 수는 없는 노릇이다. 현 시대에는 오픈 소스가 많이 발달되었기에 이를 적극적으로 활용할 필요가 있다. 따라서 컴포저를 사용하면 다른 사람들이 만들어 놓은 패키지를 사용할 수 있다. 거기에는 유닛테스팅, 로거, 라우터 뿐만 아니라, 심포니, 라라벨 등의 프레임워크 또한 컴포저를 통해 다운받을 수 있다.

 

컴포저는 독립된 하나의 프로그램이기도 하기 때문에, 별도로 다운받아서 써야한다. 따라서 아래의 사이트를 참고하여 설치해보자. Download 로 진입하면 Windows, 또는 다른 플랫폼에 따라 설치가 가능할 것이다.

 

https://getcomposer.org/

 

Composer

A Dependency Manager for PHP Latest: 1.10.10 Getting Started Download Documentation Browse Packages Issues GitHub

getcomposer.org

Composer 는 PECL(PHP Extension Community Library)와는 다른 것이다.

패키지 레지스트리

laravel 프레임워크를 검색하면 나오는 패키지들

컴포저를 사용하여 패키지를 사용하고자 하는데, 도대체 어디서 패키지를 검색하면 될까? 바로 Packagist 를 사용하면 된다. 여기서 등록된 패키지들을 찾을 수 있다.

 

https://packagist.org/

 

Packagist

Define Your Package Put a file named composer.json at the root of your package's repository, containing this information: { "name": "your-vendor-name/package-name", "description": "A short description of what your package does", "require": { "php": "^7.2",

packagist.org

filps/whoops 패키지 사용해보기

우리가 처음 사용해볼 페이지는 에러페이지를 예쁘게 꾸며줄 수 있는 whoops 를 써볼 것이다.

 

패키지 설치하기

먼저 패키지를 설치하기 전에 해야할 것은, 해당 패키지의 깃허브 레포에서 README.md 를 보고 설치방법과 사용법을 알아보는 것인데, 이는 어떤 패키지든 공통이다. 이곳에 해당 패키지의 API 의 종류와 사용법 등이 나와있으니까 말이다.

 

https://github.com/filp/whoops

 

filp/whoops

PHP errors for cool kids . Contribute to filp/whoops development by creating an account on GitHub.

github.com

해당 레포에 따라 다음과 같이 설치해보도록 하자.

composer require filp/whoops

그런 다음 다음과 같은 코드를 작성한다. 위의 레포에는 require 'vendor/autoload.php' 라는 코드가 없으나, 대부분의 패키지는 사용하려면 PSR-4 autoload 를 준수하므로, 해당 오토로더를 먼저 포함시켜야 한다. 그렇지 않고서는 올바르게 사용할 수 없다.

require_once 'vendor/autoload.php'

$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
$whoops->register();

이렇게 작성하고나서, 임의의 에러를 발생시키면 위에서 본 사진처럼 예쁘게 나올 것이다.

꼭 알아두면 좋은 패키지들

꼭 알아두면 좋은 패키지들이 몇 가지 있다. 다 알아둘 필요는 없다. 패키지는 필요에 따라 쓰는 것이지 반드시 익혀야하는 것이 아님을 명심하자.

더욱 많은 패키지를 찾아보고 싶다면, 아래의 레포를 참고해보자.

 

ziadoz/awesome-php

 

ziadoz/awesome-php

A curated list of amazingly awesome PHP libraries, resources and shiny things. - ziadoz/awesome-php

github.com

 

 

 

PHP 7+ 프로그래밍: 리부트 - 인프런

기초 문법부터 내장 함수, 웹 보안, 게시판 만들기까지 PHP 언어를 시작하는 분들을 위해 바이블이 될 수 있게 만들어보고자 하는 마음으로 이번 강좌를 만들어보았습니다. 입문 웹 개발 프로그��

www.inflearn.com

 

PHP 7+ 프로그래밍: 객체지향 - 인프런

PHP 객체지향, 내장 클래스, PSR, Composer, MVC(Model, View, Controller)까지 모던 PHP를 익히기 위한 근간을 이야기합니다. 초급 프로그래밍 언어 알고리즘 PHP 객체지향 알고리즘 온라인 강의 모던 PHP 프로��

www.inflearn.com