composer를 사용해서 간단하게 autoload를 사용하는 방법
1. monolog 패키지 설치해보기
composer require monolog/monolog
2. 패키지 로드하기
index.php
<?php
include './vendor/autoload.php';
use Monolog\Logger;
$log = new Logger('name');
3. 내 클래스 로드해보기
컴포저 autoload는 psr-4 규칙을 따르고 있기 때문에 클래스 생성시 네임스페이스를 규칙에 맞게 정하고 composer.json 파일에 namespace prefix와 클래스를 정의한 디렉토리를 매핑해주는 설정을 추가한다.
composer.json
{
"require": {
"monolog/monolog": "^2.2"
},
"autoload": {
"psr-4": { // Js 네임페이스 접두사를 lib에 매핑
"Js\\" : "lib/"
}
}
}
/lib/src/Foo.php
<?php
namespace Js\Src;
class Foo{
public function say()
{
return 'hello';
}
}
index.php
<?php
include './vendor/autoload.php';
use Monolog\Logger;
use Js\Src\Foo;
$log = new Logger('name');
$foo = new Foo();
echo $foo->say();
composer dump-autoload
Foo 클래스에서 사용한 Js 네임스페이스 접두사를 lib디렉토리에 매핑해 주었기 때문에 autoload가 실행 될때 자동으로 지정한 경로의 클래스를 로드할 수 있게 된다.
참조
- composer.json schema
- psr-4
- http://blog.ujsstudio.com/2021/01/09/psr-4-%eb%84%a4%ec%9e%84%ec%8a%a4%ed%8e%98%ec%9d%b4%ec%8a%a4-%ea%b7%9c%ec%b9%99/