update : 2015.11.03
php.shukuma.com검색:
|
클래스 자동로딩많은 개발자들이 객체지향 어플리케이션을 만들때 클래스 하나당 하나의 php 소스파일을 만들어 클래스를 정의합니다. 스크립트마다 매번 이렇게 많은 클래스를 include 하는것은 꽤 성가신 일입니다. php 5 에서는 더 이상 그렇게 하지 않아도 됩니다. __autoload() 함수를 정의하면 사용하려는 클래스나 인터페이스가 아직 정의되지 않았을 경우 자동으로 호출됩니다. 이 함수는 PHP가 오류로 실패하기 이전에 적절한 class가 로드 될수 있도록 마지막 기회를 제공합니다. Tip
spl_autoload_register() 는 클래스 자동로딩에 대한 더욱 유연한 기능을 제공합니다. 이러한 이유로 __autoload() 가 미래에는 완전히 제거되거나, 사용을 지양하게 될지도 모릅니다.
Example #1 자동로딩 예제 이 예제는 MyClass1과 MyClass2를 각각 MyClass1.php과 MyClass2.php로부터 로드를 시도합니다.
<?php Example #2 다른 자동로딩 예제 이 예제는 ITest 인터페이스의 로드를 시도합니다.
<?php Example #3 5.3.0 이후의 자동로딩 예외 핸들링 이 예제는 예외를 발생하고, tray/catch 블럭을 사용하는 모습을 보여줍니다.
<?php 위 예제의 출력: Want to load NonLoadableClass. Unable to load NonLoadableClass. Example #4 5.3.0 이후의 자동로딩 예외 핸들링 - 사용자정의 exception 을 찾을수 없음 이 예제는 로딩할 수 없는 사용자정의 exception 에 대한 경우를 보여줍니다.
<?php 위 예제의 출력: Want to load NonLoadableClass. Want to load MissingException. Fatal error: Class 'MissingException' not found in testMissingException.php on line 4 |