Voici la structure des différents fichiers impliqués lorsqu'on utilise des fichiers .inc pour les parties réutilisables du code.
Chacune des pages du site Web aura la même structure que index.php.
include/configuration.inc (aucun echo, rien en dehors de <?php et ?>)
- Initialise la session (session_start()).
- require_once 'include/ma-bibliotheque.php'; (si nécessaire)
- Initialise les variables et les constantes qui seront utilisées partout dans le programme.
- Effectue certaines configurations.
- Se branche à la base de données.
- Effectue tout autre traitement qui doit être fait AVANT d'envoyer du code HTML au navigateur (même avant le <!DOCTYPE>).
include/entete.inc
- Génère les balises <!DOCTYPE> et <html>.
- require_once 'include/ma-bibliotheque.php'; (si nécessaire)
- Spécifie les information d’en-tête (<head>...</head>). Certaines informations (ex : balises <title>, <meta name="description">) tireront leur valeur de la base de données. Les balises <script> placées ici devront utiliser l'attribut defer.
- Toujours dans la zone <head>, inclut une balise script pour le fichier js qui porte le même nom que la page actuelle (si existe).
- Ouvre la balise <body>.
- Affiche la zone d’en-tête du site (<header>...</header> ou l'équivalent).
- Affiche les menus.
- Affiche le fil d’Ariane, s'il y a lieu.
- Affiche toute autre information à afficher AVANT celles dont la logique est propre à chacune des pages Web (incluant la zone secondaire si elle est située à gauche de la zone principale).
- Ouvre la zone principale (balise <section id="principal"> ou l'équivalent).
- Affiche le titre h1 et le contenu statique de la page (tirera sa valeur de la base de données).
index.php
- require 'include/configuration.inc';
- require 'include/entete.inc';
- Exécute le code dont la logique est propre à la page Web.
- require 'include/pied-page.inc';
- require 'include/nettoyage.inc';
include/pied-page.inc
- Referme la zone principale (</div>).
- Affiche les informations à afficher APRÈS celles dont la logique est propre à chacune des pages Web (incluant la zone secondaire si elle est située à droite de la zone principale).
- Affiche la zone de pied de page.
- Referme les balises de corps et html (</body> et </html>).
include/nettoyage.inc
- Fait le « ménage » avant de terminer le traitement. Il s'agit de refermer ce qui a été ouvert dans le fichier de configuration. Pour l'instant, ce fichier ne fera que refermer le branchement à la base de données ($mysqli->close()). Ne pas oublier de vérifier si la variable $mysqli existe avant de procéder (à l'aide de isset()), sinon le programme planterait lorsque nettoyage.inc est appelé alors que $mysqli a déjà été refermé ou n'a jamais été instancié.
Ce découpage peut être résumé par le schéma suivant. Notez que dans ce schéma, les fichiers configuration.inc et nettoyage.inc ne sont pas illustrés puisqu'ils ne génèrent pas de code HTML. De plus, le schéma n'est qu'un exemple et votre code pourrait être passablement différent.
Remarquez également que certaines balises sont ouvertes dans entete.inc et refermées dans pied-page.inc. Ceci est tout à fait normal pour un fichier .inc.

Question de compréhension
Pouvez-vous dire pourquoi, dans le découpage proposé, le titre h1 et le texte qui suit font partie de entete.inc et non de chacune des pages ?

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.