Learning More Classloader
Wednesday, November 2, 2022 1:46 PMClassloader
Classloader 소개
- 고도몰은 클래스의 FQN(Fully Qualified Name)을 이용하여
Class
파일을 자동으로 인클루드 하는Autoload
시스템을 사용합니다. -
Classloader
는system/autoload.php
파일에서 기본 선언되고,user/route.php
에서 사용정의Class
를 사용할 수 있도록 해당 경로를 추가해줍니다. -
PHP
에서는Classloader
를Loader Stack
에 여러개 등록할 수 있고,Stack
의 순서대로Classloader
가 동작하여Class
를 찾습니다. 하지만,고도몰
에서는 하나의Classloader
를 사용하며, 내부에서 여러개의ClassPathResolver
를 등록하여Loader Stack
을 구현하고 있습니다.
Fully Qualified Name란? 네임스페이스의 완전한 이름으로 아래의 예에서 볼 때
Framework\ClassLoader\ClassLoader
,Framework\Http\Request
을 의미합니다. 또한 반드시 네임스페이스와 물리적인 디렉토리의 경로가 동일해야 Classloader가 정상 실행됩니다.
ClassLoader Resolver
- AbstractClassPathResolver
-
Classloader
의 기본 기능을 포함한 추상 클래스
-
- DefaultClassPathResolver
- 고도몰에 적용된 기본
Classloader
- 고도몰에 적용된 기본
- WrapperClassPathResolver
-
Controller\Front
를Module\Front
로Wrapper
해주는 클래스 로더 -
user
와system
영역의namespace
경로를 동일하게 맞춰주기 위해서 작성되었다.
-