수색…


자동 로딩

자동로드 정보를 지정하는 라이브러리의 경우, 작성기는 vendor / autoload.php 파일을 생성합니다. 이 파일을 포함 시키면 무료로 자동 로딩됩니다.

require __DIR__ . '/vendor/autoload.php';

따라서 제 3 자 코드를 사용하기가 정말 쉽습니다. 예 : 프로젝트가 Monolog에 의존하면, 클래스를 사용하기 시작하면 자동으로로드됩니다.

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');

autoload 필드를 composer.json 에 추가하여 오토로더에 자신의 코드를 추가 할 수도 있습니다.

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

Composer는 Acme 네임 스페이스에 대한 PSR-4 오토로더를 등록합니다.

네임 스페이스에서 디렉토리로 매핑을 정의합니다. src 디렉토리는 벤더 디렉토리와 동일한 레벨의 프로젝트 루트에 있습니다. 예제 파일 이름은 Acme\Foo 클래스를 포함하는 src/Foo.php 입니다.

autoload 필드를 추가 한 후 dump-autoload 를 다시 실행하여 vendor/autoload.php 파일을 다시 생성해야합니다.

이 파일을 포함하면 autoloader 인스턴스도 반환되므로 include 호출의 반환 값을 변수에 저장하고 더 많은 네임 스페이스를 추가 할 수 있습니다. 예를 들어 테스트 스위트에서 클래스를 자동로드하는 데 유용 할 수 있습니다.

$loader = require __DIR__ . '/vendor/autoload.php';
$loader->add('Acme\\Test\\', __DIR__);

PSR-4 자동 로딩 외에도 작곡가는 PSR-0, 클래스 맵 및 파일 자동 로딩을 지원합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow