spl_autoload_register
(PHP 5 >= 5.1.2, PHP 7)
spl_autoload_register — 지정된 함수를 __autoload 구현으로 등록
구문
bool spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )
설명
이 함수를 통해 클래스를 로드할 수 있습니다. 어드레싱 모드를 지정하므로 대량으로 요구하거나 포함할 필요가 없습니다. 시스템은 자동으로 지정된 규칙을 따르고 해당 위치로 이동하여 인스턴스화해야 하는 클래스를 찾습니다. 이 방법은 상대적으로 낮은 수준이지만 프레임워크가 있으면 일반적으로 이 작업을 수행할 필요가 없습니다. 하지만 사용해야 할 때가 여전히 있을 수 밖에 없습니다. 예를 들어 이 블로그를 작성할 때 스크립트를 직접 수정해야 했던 경우에는 방법이 없습니다. 아래 예는 내 스크립트에 사용되는 간단한 자동 로딩 프로그램입니다.
예제
spl_autoload_register(function ($class) { $rootPath = realpath(sprintf('%s/..', __DIR__)); $paths = array( 'src', ); foreach ($paths as $path) { if (is_file( $file = $rootPath . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $class . '.php' )) { include $file; break; } } });
익명 함수는 PHP 5.3 이상에서만 사용할 수 있다는 점에 유의하세요. 사용할 수 없는 경우 PHP 버전을 확인하세요. 여기서는 src 폴더에서 검색할 모든 클래스를 지정하기만 하면 됩니다. 클래스 이름은 파일 이름과 정확히 동일합니다.
위 내용은 spl_autoload_register를 통해 자동 로딩을 구현한 Note 019의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!