CI4

[코드이그나이터] 파일 오토로드(autoload)

으누아빠 2020. 9. 1. 15:44
반응형

파일 오토로드(autoload)

출처:
http://ci4doc.cikorea.net/concepts/autoloader.html

많은 수의 클래스를 requires()로 하드코딩 하는것은 번거롭기때문에 사용

CodeIgniter 오토로더는 네임스페이스가 없는 개별 클래스, PSR4 오토로드 디렉토리 구조를 준수하는 네임스페이스 클래스, 공통 디렉토리에서 클래스를 찾으려고 시도

초기 설정은 /app/Config/Autoload.php에서 이뤄짐

이 파일에는 두 개의 기본 배열이 포함되어 있으며 하나는 클래스맵을 위한 것이고, 다른 하나는 PSR4 호환 네임스페이스를 위한 것

네임스페이스

psr4 배열을 사용하면 네임스페이스를 해당 클래스가 있는 디렉토리에 매핑 할 수 있음

$psr4 = [
    'App'         => APPPATH,
    'CodeIgniter' => SYSTEMPATH,
];

어플리케이션 폴더는 네임스페이스 App로 되어 있음. 어플리케이션 디렉토리의 컨트롤러, 라이브러리 또는 모델의 네임스페이스를 지정하지 않을 경우 App 네임스페이스 아래 위치하게 됨

구성(config) 파일의 네임스페이스는 App\Config가 아니라 Config

클래스 맵

클래스 맵을 사용하여 네임스페이스가 없는 타사 라이브러리에 연결할 수 있음

$classmap = [
    'Markdown' => APPPATH .'third_party/markdown.php'
];

배열의 키는 찾으려는 클래스의 이름, 값은 위치를 지정하는 경로임

레거시 지원

클래스가 네임스페이스가 아닌 경우 오토로더는 /app/Libraries 및 /app/Models 디렉토리에서 파일을 찾으려고 시도