È necessario fare qualcosa per consentire a PHP di visualizzare la definizione della classe base prima che possa elaborare la classe figlio, altrimenti si verificherà un errore irreversibile.
Questo qualcosa può essere sia un manuale require_once
del file di classe di base, o autoloading (ci sono altre opzioni per caricamento automatico, ma spl_autoload_register
è quello che si dovrebbe usare).
Quale approccio da utilizzare dipende dall'ambito: quando si codifica un progetto di prova piccolo, l'impostazione del caricamento automatico è probabilmente eccessiva. Ma, come il codice di base diventa sempre più grande, caricamento automatico diventa più interessante perché:
- può nascondere la logica risoluzione file di origine complessa (ad esempio, se si dispone di una directory configurabile per le classi di base, ci sono scenari più avanzati, nonché)
- può essere configurato in modo incrementale: è possibile utilizzare più caricatori automatici che funzionano come una catena, e ogni modulo indipendente dalla applicazione può registrare il suo caricatore automatico indipendente che convive pacificamente con tutti gli altri
hai guardato al caricamento automatico? http://www.php.net/manual/en/language.oop5.autoload.php –