정상우
hELLO.
정상우
전체 방문자
384,472
오늘
91
어제
1,174
  • hELLO. (121)
    • 컴퓨터과학 (4)
      • 알고리즘 & 자료구조 (4)
    • 언어 & 프레임워크 (63)
      • Go (23)
      • PHP & Laravel (40)
    • 웹 (7)
    • 블록체인 (12)
      • 메인넷 (9)
      • 암호화폐 플랫폼 (3)
    • 포트폴리오 (10)
    • 칼럼 (20)
      • 에세이 (4)
      • 개발자스럽게 살기 (14)
      • 회고 (2)
    • 티스토리 (5)

블로그 메뉴

  • ⚡ 개발자 이력서
  • 🌟 깃허브
  • 💻 강의
  • ✨ 예제코드
  • ⭐ 브런치
  • 태그 클라우드
  • 방명록

공지사항

  • 2차 도메인을 설정했습니다 ✨

인기 글

  • JWT(JSON Web Token)의 개념부⋯
    2021.07.29
    JWT(JSON Web Token)의 개념부⋯
  • 'REST' 를 보다 'RESTful' 하게⋯
    2021.08.14
    'REST' 를 보다 'RESTful' 하게⋯
  • [Laravel] 라라벨 프레임워크⋯
    2021.06.10
    [Laravel] 라라벨 프레임워크⋯
  • 깃허브를 포트폴리오로 쓰려면⋯
    2021.12.25
    깃허브를 포트폴리오로 쓰려면⋯
  • 암호화폐 트레이딩 봇을 만들었⋯
    2021.05.12
    암호화폐 트레이딩 봇을 만들었⋯

태그

  • 라라벨
  • go
  • 포트폴리오
  • 개발 리뷰
  • 개발
  • php
  • 블록체인
  • 프로그래머스
  • Algorithm
  • 코딩테스트

최근 댓글

  • 고맙습니다 ~^^
    정상우
  • 오늘 블로그 만들었는데 검색하⋯
    엥뿌삐
  • 좋은 스킨 정말 감사드립니다.⋯
    이태홍
  • 고맙습니다 ㅎㅎ
    정상우
  • 제가 원하던 최고의 스킨입니다⋯
    _HEON

최근 글

  • 빠르게 성장하는 개발자의 세⋯
    2022.06.08
    빠르게 성장하는 개발자의 세⋯
  • 개발자와 엔지니어, 그 사이에서
    2022.05.10
    개발자와 엔지니어, 그 사이에서
  • 아임포트(Iamport)로 결제기능⋯
    2022.04.03
    아임포트(Iamport)로 결제기능⋯
  • 아임포트(Iamport)로 결제기능⋯
    2022.04.01
    아임포트(Iamport)로 결제기능⋯
  • [Laravel] 카페24 호스팅에 라⋯
    2022.03.29
    [Laravel] 카페24 호스팅에 라⋯

티스토리

hELLO · Designed By 정상우.
정상우

hELLO.

PHP: 의존성 관리자 — Composer
언어 & 프레임워크/PHP & Laravel

PHP: 의존성 관리자 — Composer

2020. 8. 14. 21:50

Composer

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

자바스크립트에 익숙하다면 NPM(Node Package Manger)와 같은 위치에 있다고 생각하면 될 것같다.

 

컴포저는 독립된 하나의 프로그램이기도 하기 때문에, 별도로 다운받아서 써야한다. 따라서 아래의 사이트를 참고하여 설치해보자. 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();

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

꼭 알아두면 좋은 패키지들

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

  • guzzlehttp/guzzle - HTTP Client. cURL 보단 쓸만하다.
  • filp/whoops - 에러 페이지를 예쁘게 꾸며준다.
  • maximebf/debugbar - GUI 형태로 보여주는 디버그 바.
  • xdebug/xdebug - 필수적으로 사용해야할 디버깅 도구.
  • Mustache.php - PHP 템플릿 엔진.
  • swiftmailer/swiftmailer - 메일 라이브러리.
  • monolog/monolog - PSR-3 Logger Interface 를 구현하는 로거.
  • gabordemooij/RedBeanPHP - 아주 간단하게 사용할 수 있는 ORM 라이브러리.
  • lstrojny/functional-php - 함수형이 대세던가? 함수형 PHP.
  • chrisboultom/php-resque - Redis 기반 큐.
  • sebastianbergmann/phpunit - 유닛 테스트 라이브러리.

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

 

ziadoz/awesome-php

 

ziadoz/awesome-php

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

github.com

더 읽을거리

https://www.inflearn.com/course/php7-reboot

https://www.inflearn.com/course/php7-oop

PHP 카테고리 목차 및 문서 정리

2020년, PHP 언어가 가지는 의미

https://www.php.net/manual/en/

    '언어 & 프레임워크/PHP & Laravel' 카테고리의 다른 글
    • PHP: 회원가입과 로그인
    • PHP: PSR(PHP Standard Recommendation)
    • PHP: MVC(Model, View, Controller)
    • PHP: 파일 업로드와 다운로드
    composer, php, 의존성 관리자, 패키지 매니저
    정상우
    정상우
    과거의 배움으로 현재를 바꾸고 미래를 만듭니다. #25+2살 #INFJ #개발자 #브런치작가
    댓글쓰기
    다음 글
    PHP: PSR(PHP Standard Recommendation)
    이전 글
    티스토리 블로그 백업 프로그램을 만들었습니다.
    • 이전
    • 1
    • ···
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • ···
    • 121
    • 다음

    티스토리툴바