2015-09-01
링크 : http://php.net/manual/kr/function.spl-autoload-register.php

일단 링크로 가서 사용법을 살펴보기 바란다. 그리고 사용법이 이해가 안간다면 아래 글을 읽어보기 바란다.

class를 사용하려면 해당 class가 정의 되어 있어야 한다.
그런데 보통 class는 사용의 편의상 다른 파일들에 따로 정의해 놓기 때문에 class를 쓰기 전에 해당 파일들을 include해놓아야 한다.
하지만 class에 사용에 따라서 일일이 class정의 파일을 include하는 것은 매우 비효율적이기 때문에, class를 선언하는 순간 해당 class가 정의된 파일을 자동으로 include 할 수 있는 방법이 필요할 것이다.
아래가 바로 그런 방법중 하나이다. 일단 간단한 예제를 보자.
spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.php';
});

$aa = new AA();
$bb = new BB();

한 파일당 하나의 class가 파일이름과 클래스 이름이 같은채로 정의되어 있어야 한다는 전제하에 사용하는 방식이다.
위 소스를 간단히 설명하자면, 기존에 classes/AA.php파일과 classes/BB.php 파일에 각가 class AA와 class BB가 구현되어 있을때, 해당 class를 선언하면 해당 파일도 include해서 class가 선언된 파일을 알아서 include해주는 구문이다.

즉, spl_autoload_register() 함수는 $aa = new AA(); 식으로 새로운 class가 선언되면 해당 class로 새로운 객체가 생성되기 전에, 해당 class이름을 인자로 받아 특정 명령을 실행 시킬수 있는것이다.
그래서 그 명령을 해당 class이름을 가지는 파일을 include하도록 짜놓으면, 자동으로 class정의 파일을 include해 줄 수 있는 것이다.