오토로드 (옛날정리)

// 참조내용을 정리만 한단계이고 테스트는 해보지 않았기때문에 불확실한 정보임..

오토로드란?

  • 클래스가 호출될때 자동으로 특정파일을 불러오는 PHP의 기능

  • PHP7이상부터 본격적으로 도입됨

  • require / include 를 사용하지 않고 자동으로 불러오고 싶을때 사용

  • 클래스만 동작함

  • 파일이 사용될때 require / include 되므로 lazy loading이 구현되고 성능에 좋음

  • PHP5.0버전 이후는 __autoload -> spl_autoload_register() 를 사용하도록 권장

  • spl_autoload_register()는 PHP 내부 동작을 가로채는 함수이다

  • composer에 정의된 패키지를 오토로딩함

// 클래스 자동호출을 사용할 파일에 아래의 내용을 붙여넣는다
spl_autoload_register(function ($class) {    
    include "$class.php";
});

20230516 추가내용

  • composer의 설치 설명처럼아래 코드를 메인 php파일에 추가하므로써 autoload를 사용한다

    require 'vendor/autoload.php';
  • autoload를 사용하면 composer의 설치된 라이브러리를 모두 require한다.

    그러면 이 후 다른 파일에서 composer의 라이브러리를 require할 필요가 없고

    그대로 함수명() ,클래스명 으로 사용가능하다.. 경로에 따라서 use를 사용할수있겠지만

    Composer의 라이브러리 Monolog를 참고 (laravel의 부속 라이브러리로 설치되어있음)


참조

https://wikidocs.net/116970

https://blog.naver.com/songxue7777/221256210660

Feb 25, 2023 Views 69