Les fonctions include et require servent à inclure un fichier PHP dans un autre fichier PHP.
La différence entre les deux est que require génère une erreur fatale si le fichier n'est pas trouvé,
tandis qu'avec include, un avertissement sera généré et le script continuera d'exécuter le reste du code.
Il y a deux manières générales d'utiliser ces fonctions :
-Inclure du code PHP pour par exemple définir des fonctions (ou des classes) qui seront utilisables par la suite.
-Inclure des fichiers contenant principalement du code HTML, ce qui permet de gérer/décomposer des "vues" en plusieurs fichiers
(par exemple un footer, une barre de navigation, etc...).
Attention
Il est important de bien comprendre la manière dont les fichiers sont inclus :
-Lors d'un simple include/require, il suffit de renseigner le chemin vers le fichier cible.
-Lorsque le fichier inclus contient lui aussi un autre include/require,
il faudra toujours concaténer la constante PHP __DIR__ avec le chemin vers le fichier afin que PHP puisse le retrouver.
Un fichier inclus l'est directement au moment de l'appel à la fonction, ce qui pose problème lorsque l'on souhaite par exemple gérer un template.
En effet, si nous avons un fichier pour une barre de navigation, un autre pour un footer et encore un autre pour un layout qui lui contient les deux autres,
nous aurons un problème pour y inclure un contenu dynamique (voir notre projet gestion template).
Nous avons vu que dans ce cas, nous pouvons utiliser les fonctions natives de php
ob_start()
et ob_get_clean().
ob_start() dit à php de stocker en mémoire tout ce qui est censé être affiché.
ob_get_clean() nous retourne ce qui a été stocké et nous permet de l'injecter dans une portion de page à l'aide d'une simple variable.