• 15 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 15/11/2019

Les limites d'un code de débutant

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Si vous avez suivi mon cours sur PHP (et si ce n'est pas le cas, vous devez le faire avant d'aller plus loin sinon vous ne comprendrez rien !), vous avez dû réaliser un TP pour créer un petit blog.

Celui-ci affichait une liste de billets depuis la base de données :

Aperçu du résultat du TP blog
Aperçu du résultat du TP blog

Le code de cette page tenait dans un fichier index.php . Voici le code qu'on avait écrit (j'ai juste retiré le lien vers la page des commentaires pour rester simple pour l'instant) :

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Mon blog</title>
        <link href="style.css" rel="stylesheet" /> 
    </head>
        
    <body>
        <h1>Mon super blog !</h1>
        <p>Derniers billets du blog :</p>
 
        <?php
        // Connexion à la base de données
        try
        {
        	$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', 'root');
        }
        catch(Exception $e)
        {
                die('Erreur : '.$e->getMessage());
        }

        // On récupère les 5 derniers billets
        $req = $bdd->query('SELECT id, titre, contenu, DATE_FORMAT(date_creation, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr FROM billets ORDER BY date_creation DESC LIMIT 0, 5');

        while ($donnees = $req->fetch())
        {
        ?>
        <div class="news">
            <h3>
                <?php echo htmlspecialchars($donnees['titre']); ?>
                <em>le <?php echo $donnees['date_creation_fr']; ?></em>
            </h3>
            
            <p>
            <?php
            // On affiche le contenu du billet
            echo nl2br(htmlspecialchars($donnees['contenu']));
            ?>
            <br />
            <em><a href="#">Commentaires</a></em>
            </p>
        </div>
        <?php
        } // Fin de la boucle des billets
        $req->closeCursor();
        ?>
    </body>
</html>

Si vous avez bien lu le chapitre précédent, il y a des défauts qui devraient vous sauter aux yeux. 👀

  • Le code est en français. Pour le titre de la page ("Mon super blog") et les autres informations affichées à l'utilisateur, c'est normal. Par contre, le code PHP lui-même ne devrait pas être en français (par exemple la variable $donnees ). C'est mauvais, car le code ne pourra pas être lu par des développeurs qui ne parlent pas français.

  • Il y a des commentaires de code. Bon, je n'ai jamais dit que les commentaires c'était mal (juste que les très bons développeurs avaient rarement besoin d'en mettre). Ici, mes commentaires étaient là surtout pour vous aider à lire le code pour vous qui débutez... mais c'est mauvais signe, car normalement on ne doit pas du tout avoir besoin de commentaires pour se "repérer" dans un code.

  • Tout est dans un seul fichier. On y mélange des opérations en PHP, des requêtes SQL et du code HTML. Il ne manquerait plus que du code CSS au milieu et ça serait le pompon ! Pas étonnant qu'on ait besoin de commentaires pour se repérer dans les différentes sections du fichier.

HTML, PHP, SQL, PHP, HTML, PHP... on mélange un peu trop les choses ici !
HTML, PHP, SQL, PHP, HTML, PHP... on mélange un peu trop les choses ici !

Je ne comprends pas. Ce code fonctionne non ? Ça ne suffit pas ?

Il fonctionne, certes. Mais si vous commencez à ajouter de nouvelles fonctionnalités, vous allez avoir besoin d'ajouter de nouvelles requêtes SQL au milieu. Très vite, le fichier va grossir et faire plusieurs centaines de lignes. Ça marchera toujours. Ça ne sera même pas forcément plus lent.

Par contre, à chaque fois que vous allez ouvrir votre fichier, vous allez pousser un grand soupir :

"Pfff, qu'est-ce que j'avais fait déjà ? Hmm, là c'était à peu près l'endroit qui s'occupait de ça. Bon je modifie ici... ah merde ça plante. Ah oui c'est vrai, il y avait aussi un truc à modifier à un autre endroit du fichier pour que ça marche. Oh là là je sais plus, je suis perdu·e, c'est trop compliqué la programmation !"

Et encore, c'est vous qui aviez écrit ce fichier. Imaginez ce qui se passe dans la tête d'une personne qui doit modifier votre code parce que vous travaillez en équipe ensemble !

😐

⁉️🤔

🙄 😑

😡

💩

‼️ 🔫 💣 🗡 🗯 💀 ☠️

Bref, vous avez compris : cette personne va souhaiter très fort que vous ne soyez jamais venu·e au monde !

Pour vous éviter ce genre de situation, je vais vous montrer comment on peut organiser mieux ce code en le découpant. Allons-y par étapes !

Essayez !

https://www.codevolve.com/api/v1/publishable_key/2A9CAA3419124E3E8C3F5AFCE5306292?content_id=8f2023a9-50b8-43ec-a6f4-620c121e5e6b

Exemple de certificat de réussite
Exemple de certificat de réussite