본문 바로가기
Language/PHP

공부 내용 정리 PHP :: 초급 VI

by Cs.Woo 2021. 6. 2.

# 컴포저(Composer)

 패키지매니저 소프트웨어의 하나인 컴포저에 대한 내용을 정리하였다.

 

 근래에는 객체지향 프로그래밍이 패러다임이 되면서, 나의 코드 혹은 프로그램/ 소프트웨어가 하나의 부품이 되고, 타인이 작업한 코드 혹은 프로그램/ 소프트웨어가 부품이 되어 다른 프로그램/소프트웨어에 합쳐져 조립이되며 더욱 견고한 프로그램을 구성하는 것이 가능해졌다.

 

 이것을 가능하게 하고 더욱 효율적으로 도와주는 프로그램이 바로 패키지매니저이다.  PHP의 대표적인 패키지 매니저중 하나는 컴포저(Composer)라는 것인데, 설치는 다음의 링크에서 진행할 수 있다.

 

https://getcomposert.org 

 

# 컴포저 사용방법

 명령프롬프트(찾기=>cmd)에서 php로 작업하고 있는 디렉토리로 이동하여 git과 마찬가지로 초기화를 해준다. 명령어는 composer init이다. 그 후에 패키지의 네임과 저자, 타입 라이센스등 부가적인 정보를 입력해주고 입력을 완료하면 하기와 같은 명령어들이 뜨고 입력을 빠져나올 수 있게 된다. 이렇게 진행하면 사용할 준비가 완료된 것이다.

 명령프롬프트 화면에서 상기와 같이 자세한 정보가 출력될 것이다. 준비가 완료되면 하기의 그림처럼 작업하고 있는 디렉토리에 json파일이 하나 추가가 될것이다.

 이제 작업하고있는 프로젝트에 의존성 주입을 할 수 있게 된 것이다. 의존성 주입을 하기 위해서는 상기 제이슨 파일에서 require의 { } 안에 작성을 해주거나 composer의 명령어를 통하여 주입을 하면된다. PHP의 라이브러리 등을 검색해보기 위한 사이트로는 packagist.org 등이 있다.

링크 :: 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.4"

packagist.org

 

 cf)  패키지를 검색하고 사용할 때 버전에서 dev가 없는 버전이 안정적이다.  또한 각각의 패키지 또는 라이브러리는 의존성 주입을 어떻게 해야하는지에 대한 설명이 나와있다. 때에따라 명령프롬프트에 입력해야할 수도 있고, 직접 require에 추가해야할 수도 있다. 

 의존성 주입을 하고 나면 vendor파일에 불러온 라이브러리의 모든 파일이 들어오게 된다. 이렇게된다면 이론적으로 사용하고자 하는 파일을 require_once를 이용하여 불러와야 하는데 그렇게 하면 오류가 발생한다. 따라서 composer는 벤더 디렉토리에 있는 autoload.php를 불러오기만 하면 나머지는 알아서 처리하도록 기능을 제공하고 있다.

 즉, 의존성주입한 라이브러리의 기능을 사용하려면 php파일 최상단에, require_once __DIR__ . '디렉토리/autouload.php'를 하면 해당 라이브러리를 오류없이 사용할 수 있게 되는 것이다.

 

 상기와 같이 Composer를 통하여 autoload를 이용하면, require_once를 사용하지 않고 namespace를 통해 use만 사용하여 프로젝트내에있는 다른 파일을 불러올 수 있는데, 방법은 다음과 같다.

 

"require" : {
	INFORMATION FOR INDIPENDENCIES
    },
"autoload" : {
	"psr-4": {"php파일명\\": "디렉토리/"}
    }

 상기와 같고, Composer의 API에서 제공하는 공식적인 사용법(문법)은 다음과 같으니 참고하여 이용하면 된다.

 

{
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}

 

링크 :: https://getcomposer.org/doc/01-basic-usage.md#autoloading

 

Basic usage - Composer

Introduction composer.json: Project setup The require key Package names Package version constraints Installing dependencies Updating dependencies to their latest versions Packagist Platform packages Autoloading Basic usage# Introduction# For our basic usag

getcomposer.org

 

상기와 같이 입력하였으면 컴포저의 명령어로서 명령프롬프트에 composer install이라는 명령어를 입력하여 컴포저에 적용을 해주어야 한다.