0Pricing
PHP Academy · 강의

자동 로더 등록

spl_autoload_register와 Composer 기반 자동 로딩을 설정합니다.

자동 로더 등록은(는) CoddyKit의 무료 PHP Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 PHP Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. PHP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

spl_autoload_register

spl_autoload_register()는 정의되지 않은 클래스를 사용할 때마다 PHP가 호출하는 콜백을 등록합니다. 여러 자동 로더는 등록된 순서대로 실행됩니다.

기본 사용자 지정 자동 로더

직접 작성한 최소한의 PSR-4 방식 자동 로더입니다:

<?php
spl_autoload_register(function (string $class): void {
    $prefix  = 'App\\';
    $baseDir = __DIR__.'/src/';
    if (!str_starts_with($class, $prefix)) return;
    $rel  = substr($class, strlen($prefix));
    $file = $baseDir.str_replace('\\', '/', $rel).'.php';
    if (file_exists($file)) require $file;
});

여러 자동 로더

네임스페이스 접두사마다 자동 로더를 하나씩 등록하여 각 자동 로더가 자신의 클래스만 처리하도록 하십시오.

<?php
spl_autoload_register(fn($c) => loadFromSrc($c));
spl_autoload_register(fn($c) => loadFromLib($c));

컴포저의 autoload.php

실제로는 직접 자동 로더를 작성하는 일이 거의 없습니다. 컴포저가 모든 패키지와 사용자의 PSR-4 매핑을 처리하는 자동 로더를 생성합니다.

<?php
require __DIR__.'/vendor/autoload.php';

dump-autoload

새 클래스를 추가하거나 composer.json의 자동 로드 설정을 변경한 후 자동 로더를 다시 생성하십시오: composer dump-autoload.

최적화된 자동 로더

composer dump-autoload --optimize는 정적 클래스 맵을 생성하여 실행 중 파일 시스템 검색을 제거합니다. 운영 환경에 권장됩니다.

파일 자동 로드(전역 함수)

전역 함수가 있는 도우미 파일에는 composer.json의 files 키를 사용하십시오. 해당 파일은 항상 포함됩니다.

// composer.json
{
  "autoload": {
    "files": ["src/helpers.php"]
  }
}

자동 로더 실행 순서

자동 로더는 등록된 순서대로 호출됩니다. 첫 번째 자동 로더가 클래스를 찾지 못하면 오류 없이 반환되고 PHP가 다음 자동 로더를 시도합니다.

자동 로드 문제 디버깅

"클래스를 찾을 수 없음"의 흔한 원인은 dump-autoload 누락, 파일 또는 클래스 이름의 잘못된 대소문자, composer.json의 네임스페이스 접두사 불일치입니다.

PSR-4와 클래스 맵의 성능

PSR-4는 파일 시스템 상태 조회를 수행합니다. 클래스 맵은 해시 맵 조회를 사용하므로 더 빠르지만 새 클래스를 추가할 때마다 다시 생성해야 합니다.

자동 로드 테스트

자동 로더를 확인하십시오:

<?php
require 'vendor/autoload.php';
$obj = new \App\Services\EmailService();
echo get_class($obj); // App\Services\EmailService

요약

spl_autoload_register는 모든 PHP 자동 로드의 기반입니다. 컴포저가 복잡한 작업을 처리하므로 새 클래스를 추가할 때 dump-autoload만 실행하면 됩니다.

빠른 확인

컴포저 자동 로더를 다시 생성하는 명령은 무엇입니까?

자주 묻는 질문

“자동 로더 등록” 강의는 무료인가요?

네 — “자동 로더 등록” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 PHP Academy 강의 전체를 잠금 해제할 수 있습니다. PHP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“자동 로더 등록”에서 뭘 배우나요?

spl_autoload_register와 Composer 기반 자동 로딩을 설정합니다. 브라우저에서 직접 실행하는 실습 코드로 PHP Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

PHP Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 PHP Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“자동 로더 등록” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 PHP Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 PHP Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 네임스페이스 선언 및 사용
  2. 중첩 네임스페이스 및 별칭
  3. PSR-4 자동 로딩 표준
  4. 자동 로더 등록
← PHP Academy(으)로 돌아가기