PHP Laravel 없이 PHP로 PSR-4 오토로딩 구현하기
페이지 정보

영삼이
본문
✅ Laravel 없이 PHP로 PSR-4 오토로딩 구현하기
PSR-4는 PHP-FIG에서 제안한 Autoloader 표준입니다. Composer를 통해 자동으로 로딩되는 구조를 만들 수 있지만, 프레임워크 없이 순수 PHP로도 PSR-4 규격을 구현할 수 있습니다.
📁 디렉토리 구조 예시
project/
├── src/
│ ├── App/
│ │ └── Service/
│ │ └── UserService.php
├── vendor/
├── composer.json
├── index.php
🔧 PSR-4 오토로더 직접 구현
[code=php]
spl_autoload_register(function ($class) {
$prefix = 'App\\';
$baseDir = __DIR__ . '/src/App/';
// 클래스명이 접두사로 시작하는지 확인
$len = strlen($prefix);
if (strncmp($prefix, $class, $len) !== 0) {
return;
}
// 접두사 제거 후 파일 경로로 변환
$relativeClass = substr($class, $len);
$file = $baseDir . str_replace('\\', '/', $relativeClass) . '.php';
if (file_exists($file)) {
require $file;
}
});
[/code]
🧱 클래스 예시
[code=php]
namespace App\Service;
class UserService {
public function hello() {
return 'Hello, PSR-4!';
}
}
[/code]
🚀 index.php에서 테스트
[code=php]
use App\Service\UserService;
require 'autoloader.php';
$service = new UserService();
echo $service->hello();
[/code]
📚 Composer로 설정하는 방법
[code=json]
{
"autoload": {
"psr-4": {
"App\\": "src/App/"
}
}
}
[/code]
이후 아래 명령으로 오토로더 생성:
composer dump-autoload
🧠 요약
-
PSR-4는 네임스페이스와 디렉토리 구조를 매핑하는 규칙
-
Composer 없이도
spl_autoload_register
를 통해 직접 구현 가능 -
Composer를 사용하는 것이 일반적이지만, 구현 원리를 이해하는 것이 중요
- 이전글PHP에서 인터페이스와 트레이트 혼용 설계 팁 25.03.28
- 다음글PHP에서 의존성 주입 제대로 활용하는 법 25.03.28
댓글목록
등록된 댓글이 없습니다.