확장기능 관리자
PHP의 확장기능은 PHP의 기본 기능으로 제공되지 않는 기능을 제공한다.
Composer
컴포저는 PHP의 의존성 관리도구이다. 필요한 확장 기능을 쉽게 설치해주는 기능도 제공하지만, 프로젝트에서 필요한 확장 기능을 통합해서 관리해주는 도구다.
Unix 계열
아래의 명령을 이용해서 Composer을 설치한다.
curl -sS https://getcomposer.org/installer | php
Windows
윈도우(Bitnami 기준)에서 Composer을 사용하기 위해서는 php의 openssl 확장 기능을 활성화해야 한다. php.ini 파일에서 아래 부분의 주석을 해제한 후에 웹서버를 재시작한다.
;extension=php_openssl.dll
나머지 설명은 동영상과 Composer 메뉴얼을 참고한다.
Packagist
Packagist는 컴포저의 메인 저장소다. 이곳을 통해서 다양한 패키지를 검색할 수 있다. 주소는 아래와 같다.
의존성 정의
프로젝트에서 사용할 라이브러리를 아래와 같이 지정한다. 파일의 이름은 composer.json으로 해야 한다.
{ "require": { "dflydev/markdown": "1.0.3" } }
설치
아래와 같이 명령을 실행하면 composer.json의 내용을 읽어서 여기에 정의된 라이브러리를 설치한다.
php composer.phar install
composer.lock
컴포저를 인스톨하면 composer.lock 파일이 생성된다. 이 파일의 내용을 열어보면 현재 설치된 라이브러리를 이용하기 위해서 필요한 선행 라이브러리들의 항목과 정확한 버전이 기술되어 있다. 이것은 일종의 스냅샷이라고 할 수 있는데 지금 상태를 기록해둔 것이다. 컴포저 인스톨을 실행했을 때 이 파일이 존재한다면 컴포저는 이 파일에 기술된 라이브러리와 다른 버전의 라이브러리만을 설치할 것이다.
만약 라이브러리를 최신버전으로 갱신하고 싶다면 아래와 같이 update 명령을 사용하면 된다.
php composer.phar update
라이브러리의 사용
다운로드된 패키지는 vendor 디렉토리에 저장된다. 그리고 라이브러리를 사용할 때는 아래의 구문의 코드의 초입에 삽입한다.
require 'vendor/autoload.php';
아래는 dflydev/markdown 라이브러리를 사용한 전체 소스코드다.
3.php
<?php require 'vendor/autoload.php'; use dflydev\markdown\MarkdownParser; $markdownParser = new MarkdownParser(); echo $markdownParser->transformMarkdown("#Hello World"); ?>