0Pricing
PHP Academy · Lezione

Registrazione degli autoloader

Configurare spl_autoload_register e l'autoloading basato su Composer.

Registrazione degli autoloader è una lezione PHP Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento PHP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso PHP Academy include 4 lezioni in totale.

spl_autoload_register

spl_autoload_register() registra un callback che PHP richiama ogni volta che viene utilizzata una classe non definita. Gli autoloader multipli vengono eseguiti nell'ordine di registrazione.

Autoloader personalizzato di base

Un autoloader minimo in stile PSR-4 scritto manualmente:

<?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;
});

Autoloader multipli

Registri un autoloader per ogni prefisso di namespace, in modo che ciascuno gestisca solo le proprie classi.

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

L'autoload.php di Composer

Nella pratica, quasi mai si scrive un autoloader personalizzato. Composer ne genera uno che copre tutti i pacchetti e le associazioni PSR-4 del progetto.

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

dump-autoload

Dopo aver aggiunto nuove classi o modificato le impostazioni di autoload in composer.json, rigeneri l'autoloader: composer dump-autoload.

Autoloader ottimizzato

composer dump-autoload --optimize crea una classmap statica, eliminando le scansioni del file system durante l'esecuzione. È consigliato in produzione.

Caricamento automatico dei file (funzioni globali)

Utilizzi la chiave files in composer.json per i file di supporto con funzioni globali. Vengono sempre inclusi.

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

Ordine di esecuzione degli autoloader

Gli autoloader vengono chiamati nell'ordine di registrazione. Se il primo non riesce a trovare la classe, restituisce il controllo senza errori e PHP prova il successivo.

Debug dei problemi di autoloading

Cause comuni di "Class not found": manca dump-autoload, le maiuscole o minuscole nel nome del file o della classe non corrispondono, oppure il prefisso del namespace non coincide in composer.json.

Prestazioni di PSR-4 e classmap

PSR-4 esegue chiamate stat sul file system. classmap esegue una ricerca in una tabella hash: è più veloce, ma richiede la rigenerazione per ogni nuova classe.

Testare l'autoloading

Verifichi l'autoloader:

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

Riepilogo

spl_autoload_register è alla base di tutto l'autoloading di PHP. Composer gestisce il lavoro più complesso: esegua semplicemente dump-autoload quando aggiunge nuove classi.

Verifica rapida

Quale comando rigenera l'autoloader di Composer?

Domande Frequenti

La lezione «Registrazione degli autoloader» è gratuita?

Sì — il testo completo di «Registrazione degli autoloader» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso PHP Academy, passa a CoddyKit PRO. Il corso PHP Academy include 4 lezioni in totale.

Cosa imparerò in «Registrazione degli autoloader»?

Configurare spl_autoload_register e l'autoloading basato su Composer. Eserciti PHP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare PHP Academy?

Non è richiesta alcuna esperienza precedente. PHP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Registrazione degli autoloader»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione PHP Academy?

Sì. Ogni lezione PHP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Dichiarazione e uso dei namespace
  2. Namespace annidati e alias
  3. Standard di autoloading PSR-4
  4. Registrazione degli autoloader
← Torna a PHP Academy