오토로딩


PHP는 소스파일을 나누어 작성할 수 있습니다. 분리된 파일은 include / require 와 같은 전처리 명령을 통하여 소스를 삽입 결합 할 수 있습니다.

소스의 파일을 분리하여 작성을 하는 방법들은 소스코드들을 간결화 하고, 기능별로 코드들을 분리할 수 있기 때문입니다. 비슷하게 분리된 파일들은 유지보수 및 재사용을 하는데 있어서 매우 유용합니다.

분리된 파일들은 동작하는데 있어서 상호 의존관계가 발생됩니다. 예로, aaa.php 파일을 실행하는데 필요한 함수가 bbb.php 에 있다면, 두개 파일은 서로 의존하게 됩니다. 만일 aaa.php 파일이 의존관계에 있는 bbb.php 파일을 include하지 않으면 의존성 실패로 스크립트 파일은 오류를 발생합니다.

파일을 분리하는 것은 의존성만 잘 관리를 한다면, 매우 유용한 소스관리 방법입니다. 하지만, 너무 많은 파일로 소스가 분리되어 있을 경우 모든 의존성을 체크하여 처리하는 것은 힘이 듭니다.

<?php
include ('파일...');
include ('파일...');
include ('파일...');
.
.
include ('파일...');
include ('파일...');

소스 상단에 많은 include 문을 포함할 것입니다. 이러한 복잡한 의존관계를 쉽게 해결하기 위해서 PHP는 오토로드 라는 기능을 적용하였습니다. 오토로드는 PHP에서 의존성이 있는 소스를 실행할 때 먼저 실행되어 소스결합을 처리를 하게 됩니다.


클래스 의존성


클래스는 인스턴스를 생성하거나 정적으로 클래스를 사용하기 전에 반드시 클래스가 정의 되어 있어야 합니다. 또한, 클래스를 상속을 받을 때에도 상속되는 부모의 클래스는 반드시 사용전에 정의가 되어 있어야 합니다.

이처럼 PHP가 클래스를 사용하기 전에 연관된 클래스의 관계를 클래스 의존성이라고 합니다. 프로그램의 커지고 클래스의 관계가 복잡할 수록 클래스의 의존성을 확인하는 것은 매우 중요합니다.

Bascic.class.php 파일에

<?php
	class basic {
		function show (){
			return 클래스입니다.;
		}
	}
?>

클래스를 생성한 후에

Test.php

<?php
	// 클래스파일을 삽입합니다.
	include basic.class.php;
	
	$basic = new basic;
	
	echo $basic->show();
?>

파일에서 사전에 클래스 파일을 삽입을 합니다.