Cosa è l’autoloading delle classi PHP

L'autoloading delle classi in PHP è una funzionalità che permette di caricare automaticamente le classi quando vengono utilizzate.
immagine dell'autore dell'articolo

Scritto da: Alberto

Una vita nell'informatica, per lavoro e per passione.
agsdix-far fa-calendar-alt
Data pubblicazione: 29 Maggio 2025
agsdix-far fa-comments

Inclusione delle classi in PHP

Molti sviluppatori che scrivono applicazioni orientate agli oggetti creano un file sorgente PHP per ogni definizione di classe. Se uno script utilizza più classi sarà perciò necessario inserire all’inizio dello script un elenco di inclusioni (una per ogni classe richiamata).

In PHP, le classi possono essere incluse utilizzando le funzioni include, require, include_once e require_once. Queste funzioni permettono di caricare file esterni contenenti definizioni di classi, rendendole disponibili nel codice.

Metodi di inclusione

  1. include e require Entrambi permettono di includere un file PHP, ma con una differenza:
    • include "classe.php"; genera un warning se il file non esiste, ma il codice continua a essere eseguito.
    • require "classe.php"; genera un errore fatale, interrompendo l’esecuzione se il file non viene trovato.
  2. include_once e require_once Questi garantiscono che il file venga incluso una sola volta, evitando problemi di ridefinizione delle classi.
    • include_once "classe.php";
    • require_once "classe.php";

Esempio

Se hai una classe Persona definita in persona.php:

// persona.php
class Persona {
    public $nome;
    
    public function __construct($nome) {
        $this->nome = $nome;
    }
    
    public function saluta() {
        return "Ciao, sono " . $this->nome;
    }
}

Puoi includerla nel tuo script principale:

require_once "persona.php";

$persona = new Persona("Marco");
echo $persona->saluta();

Autoloading delle classi PHP

L’autoloading delle classi in PHP è una funzionalità che permette di caricare automaticamente le classi quando vengono utilizzate, senza doverle includere manualmente con require o include. Questo semplifica la gestione del codice, soprattutto nei progetti complessi con molte classi.

Come funziona?

PHP offre due metodi principali per l’autoloading:

__autoload() (deprecato) Era una funzione speciale che PHP chiamava automaticamente quando si cercava di istanziare una classe non ancora inclusa. Esempio:

function __autoload($class_name) {
   require_once "classes/$class_name.php"; 
} 

Tuttavia, è stata deprecata in favore di spl_autoload_register().

spl_autoload_register() (consigliato) Questo metodo consente di registrare una o più funzioni di autoload, rendendo il processo più flessibile e compatibile con gli standard moderni:

spl_autoload_register(function ($class_name) {
    require_once "classes/$class_name.php";
});

Vantaggi dell’autoloading:

  • Riduce il numero di require e include, rendendo il codice più pulito.
  • Migliora le prestazioni caricando solo le classi necessarie.
  • Facilita l’organizzazione dei file e la scalabilità del progetto.

0 commenti