Structuration d'un site avec include()

867

La fonction include() permet d'inclure une portion de code située dans un fichier externe à l'intérieur d'une page. Cette instruction permet d'éviter de réécrire les parties répétitives d'un site comme on doit le faire dans un site statique réalisé en HTML et CSS.

Fonctionnement

Le paramètre de la fonction include() indique le chemin de la portion de code à insérer :

<?php
include('page_ou_code.php');
?>

Exemple avec la construction d'un site simple

Ce petit site simple, constitué de 3 pages, va profiter des bienfaits de la fonction include(). Inutile de répéter les entêtes et les pieds de page, seuls les contenus des pages varient.

include

Page index.php

Le code de démarrage index.php intégrera les contenus de <main> selon les liens cliqués grâce à la variable $_GET['page']. Lors du premier chargement, c'est la section accueil qui sera intégrée faute d'existence de la variable $_GET['page'].

<!doctype html>
<html lang="fr">
    <head>
        <meta charset="utf-8">
        <title>Mon superbe site</title>
    </head>
    <body>
        <nav>
            <a href="?page=accueil.html">Accueil</a>
            <a href="?page=services.html">Services</a>
            <a href="?page=contact.html">Contact</a>
        </nav>
        <main>
        <?php
        if(isset($_GET['page']))
            include($_GET['page']);
        else
            include('accueil.html');
        ?>
        </main>
        <footer>
            <p>© La Boite 2021 - Tous droits réservés</p>
        </footer>
    </body>
</html>

Le lien :

<a href="?page=accueil.html">Accueil</a>

est équivalent à :

<a href="index.php?page=accueil.html">Accueil</a>

Ce lien recharge la page actuelle et donne naissance à la variable page affectée de la valeur accueil. On pourra alors récupérer la valeur de la variable page avec la méthode $_GET.

Page accueil.html

Les pages à inclure n'ont pas besoin des balises structurelles HTML car elles utiliseront celles de la page hôte index.php.

Nommez cette page accueil.html

<h1>Mon superbe site</h1>
<p>Bienvenue sur notre site génial.</p>

Page services.html

Nommez cette page services.html

<h1>Nos services</h1>
<p>Voici les services que nous proposons.</p>

Page contact.html

Nommez cette page contact.html

<h1>Contact</h1>
<p>Contactez-nous et envoyez-nous de l'argent.</p>

Simplicité des modifications

C'est terminé. A présent, supposons que vous souhaitiez mettre à jour la date du copyright dans le pied de page ou que vous souhaitiez modifier le menu dans l'entête. Vous n'avez qu'à le faire une seule fois sur la page index.php pour mettre à jour l'ensemble des pages de votre site.
Sur un site traditionnel en HTML, vous devez le faire autant de fois que le nombre de pages de votre site. Quel gain de temps et quelle simplicité ! Merci PHP 🙂

Articles connexes