티스토리 뷰
autoload
require, include로 파일(혹은 클래스)를 일일이 불러오는 것이 아니라
자동으로 클래스를 인식해서 oop를 쉽게 지원하는 autoload를 지원한다.
autoload의 명령어의 이름은 spl_autoload_register 이며 스펙은 다음과 같다
bool spl_autoload_register ([ callable $autoload_function
[, bool $throw
= true [, bool $prepend
= false ]]] )
callable : 자동로드 기능의 등록, 쉽게 말하면 클래스 명과 같다
thow : 기본값 true, 등록 할 수 없는 경우 예외처리를 throw 하는지의 여부
prepend : 기본값 false, true인 경우 autoload를 추가하는 대신
자동로드 대기열에 추가한다. 즉 이 특정함수가 먼저 호출된다는 얘기
반환값 : 성공시 true, 실패시 flase
spl_autoload_register 예제
<?php
function my_autoloader($class) {
include 'classes/' . $class . '.class.php';
}
spl_autoload_register('my_autoloader');
// Or, using an anonymous function as of PHP 5.3.0
spl_autoload_register(function ($class) {
include 'classes/' . $class . '.class.php';
});
?>
클래스가 로드되지 않은 spl_autoload_register 예제
<?php
namespace Foobar;
class Foo {
static public function test($name) {
print '[['. $name .']]';
}
}
spl_autoload_register(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0
new InexistentClass;
?>
결과는
[[Foobar \ InexistentClass]] 치명적인 오류 : 'Foobar \ InexistentClass'클래스를 찾을 수 없습니다 ...
https://getcomposer.org/doc/01-basic-usage.md
'■ 백엔드 ■ > Modern PHP' 카테고리의 다른 글
autoload with composer (0) | 2018.07.01 |
---|