Introduction : pourquoi le « code propre » n'est pas une question de pédanterie, mais d'argent et de sérénité
\n\nImaginez 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 ».
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\n1. La philosophie du code propre : les principes clés
\n\nAvant 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
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\n2. Les normes PSR : votre premier pas vers l'ordre
\n\nDans 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\n2.1 PSR-1 et PSR-12 : le style de codage de base
\n\nPSR-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
<?phpou<?=. \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
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\nExemple 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\nVous 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\n2.2 PSR-4 : l'autochargement des classes
\n\nOubliez 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 :
src/\n App/\n Controllers/\n UserController.php\n Models/\n User.php\n Services/\n PaymentService.php\n\n\nDans composer.json, cela se configure en une ligne :
{\n "autoload": {\n "psr-4": {\n "App\\\\": "src/"\n }\n }\n}\n\n\n3. Le bon nommage : comment ne pas appeler une variable $a
\n\nLe 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