Code propre en PHP : guide pour développeurs exigeants

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : pourquoi le « code propre » n'est pas une question de pédanterie, mais d'argent et de sérénité

\n\n

Imaginez que vous ouvrez un vieux projet PHP écrit il y a un an. Vous accédez au fichier index.php, et vous découvrez un mélange confus de HTML, de requêtes SQL, de echo et de fonctions aux noms comme f1(). Cela vous parle ? Si oui, vous êtes soit un débutant qui commence tout juste son apprentissage, soit un développeur expérimenté qui a hérité d'un projet « legacy ».

\n\n

Le code propre en PHP n'est pas une mode ni un caprice de chef d'équipe. C'est un outil qui fait gagner des heures, préserve les nerfs et économise de l'argent. Dans cet article, nous allons voir comment transformer votre code PHP d'un « brouillon sale » en un « propre » qui ravira vous et vos collègues. Nous aborderons les normes PSR, les principes SOLID, le nommage correct et fournirons des exemples concrets. C'est parti !

\n\n

1. La philosophie du code propre : les principes clés

\n\n

Avant de plonger dans la syntaxe, mettons-nous d'accord sur les règles du jeu. Un code propre est un code qui :

\n\n
    \n
  • Se comprend sans commentaires (même si les commentaires sont parfois nécessaires).
  • \n
  • Se teste facilement.
  • \n
  • N'a pas peur du refactoring.
  • \n
  • Respecte un style uniforme dans tout le projet.
  • \n
\n\n

Robert Martin (Oncle Bob) a dit dans son livre « Clean Code » : « La seule façon d'aller vite est de bien faire ». Si vous écrivez rapidement et salement, vous passerez dix fois plus de temps à déboguer dans un mois. Apprenons des erreurs des autres, pas des nôtres.

\n\n

2. Les normes PSR : votre premier pas vers l'ordre

\n\n

Dans le monde PHP, il existe les PSR (PHP Standards Recommendations) — des recommandations adoptées par la communauté. Si vous ne les utilisez pas, vous compliquez au minimum la vie de vos collègues qui liront votre code.

\n\n

2.1 PSR-1 et PSR-12 : le style de codage de base

\n\n

PSR-1 définit les règles générales, et PSR-12 le style étendu. Voici quelques points clés :

\n\n
    \n
  • Les fichiers doivent utiliser uniquement <?php ou <?=.
  • \n
  • L'encodage des fichiers est UTF-8 sans BOM.
  • \n
  • Les noms de classes doivent être en StudlyCaps (exemple : UserController).
  • \n
  • Les noms de méthodes et propriétés sont en camelCase (exemple : getUserName()).
  • \n
  • L'indentation est de 4 espaces (pas de tabulation !).
  • \n
\n\n

Exemple de mauvais code :

\n
<?\nclass user_controller {\n\tfunction Get_User_Name($id) {\n\t\t$name = Db::query("SELECT name FROM users WHERE id=$id");\n\t\treturn $name;\n\t}\n}\n
\n\n

Exemple de bon code (PSR-12) :

\n
<?php\n\ndeclare(strict_types=1);\n\nnamespace App\\Controllers;\n\nuse App\\Models\\User;\n\nclass UserController\n{\n    public function getUserName(int $id): ?string\n    {\n        $user = User::find($id);\n        return $user ? $user->getName() : null;\n    }\n}\n
\n\n

Vous voyez la différence ? La deuxième version se lit comme un livre : on comprend immédiatement ce que fait la méthode, quels types de données elle accepte et retourne.

\n\n

2.2 PSR-4 : l'autochargement des classes

\n\n

Oubliez les require_once dans chaque fichier. Utilisez Composer et PSR-4. Cela permet de charger les classes automatiquement via les espaces de noms. La structure des dossiers doit correspondre aux namespaces :

\n\n
src/\n  App/\n    Controllers/\n      UserController.php\n    Models/\n      User.php\n    Services/\n      PaymentService.php\n
\n\n

Dans composer.json, cela se configure en une ligne :

\n
{\n    "autoload": {\n        "psr-4": {\n            "App\\\\": "src/"\n        }\n    }\n}\n
\n\n

3. Le bon nommage : comment ne pas appeler une variable $a

\n\n

Le nommage représente 50 % du succès. Un mauvais nom de variable peut dérouter même un génie. Analysons les erreurs fréquentes.

\n\n

3.1 Évitez les abréviations (sauf les plus évidentes)

Blogs

Book Recommendations