Include e require

I nostri progetti saranno composti, nella quasi totalità dei casi, da diversi file php contenenti le funzioni e le classi di cui il nostro progetto ha bisogno per funzionare. Distribuire le funzioni – ma soprattutto le classi – su file php diversi è molto utile per poterle gestire, aggiornare e includere in modo molto più semplice. Come facciamo poi ad usare le classi definite in questi file?

PHP mette a disposizione le funzioni include e require, che servono sostanzialmente a includere un file php (e non solo) dentro un altro file.

Se, ad esempio, avessimo scritto una classe per la gestione degli utenti, la potremmo mettere nel file class.utente.php, mentre le funzioni o classi che si occupano di dialogare con il database nel file class.database.php.

class.utente.php

class.database.php

Quando andremo a realizzare la pagina pubblica index.php del nostro progetto web, le classi nei due file ci serviranno, prima di poterle utilizzare. Ricordiamo che a loro volta class.utente.php o class.database.php potrebbero includere altri file, che saranno automaticamente inclusi a catena. Nella pagina index.php dovremmo creare una struttura simile a questa:

index.php

I due file vengono totalmente inclusi, e tutto il loro codice resta disponibile in questa pagina. Le funzioni include e require hanno usa sola differenza: nel caso di require, se il file non viene trovato, l’esecuzione viene interrotta e viene generato un errore fatale. Con include invece PHP tenta di continuare ad eseguire il resto del codice.

include_once e require_once

Analogamente a include e require, esistono due funzioni gemelle, include_once e require_once che vi consiglio vivamente di usare. La piccola ma fondamentale differenza è che queste due funzioni controllano che i file non siano stati già inclusi. Può sembrarvi banale, ma in grandi progetti, in cui ci sono file che includono a loro volta altri file, ciò può essere fondamentale per non generare errori.