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
includeerequireEntrambi 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.
include_onceerequire_onceQuesti 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
requireeinclude, 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