Une introduction aux normes de codage PHP de WordPress • WPShout

By | décembre 9, 2020

Formation WordPress

Le codage vous fait suivre des règles – chaque langage a sa propre syntaxe à laquelle vous devez adhérer si vous voulez que votre code soit compilé ou exécuté.
Mais il existe un autre ensemble de règles qui, bien qu’elles ne soient pas essentielles pour l’exécution réelle du code, aident dans les parties périphériques du codage. Ces règles sont appelées normes de codage.

Les normes de codage sont des conventions recommandées pour l'écriture de code. Chaque langue a la sienne, et WordPress, en tant que système, a sa propre version pour chacune des langues utilisées pour le construire. WordPress a des normes de codage pour PHP, Accessibilité, CSS, HTML et JavaScript.

Cet article se concentrera sur les normes de codage PHP. Avant de plonger dans les normes de codage, vous voudrez peut-être vous familiariser avec le langage PHP via le didacticiel PHP pour les débutants, le didacticiel WordPress essentiel pour les développeurs PHP, ou en particulier Comprendre l'écho de PHP.

Pourquoi suivre les normes de codage WordPress

Vous vous demandez peut-être: pourquoi voudrais-je m'engager sur tout un ensemble de nouvelles règles qui ne sont pas absolument nécessaires pour écrire du code de travail sur WordPress. Eh bien, c'est une excellente question, à laquelle la documentation des normes de codage WordPress a répondu dans son introduction:

Normes de codage aider à éviter les erreurs de codage courantes, améliore la lisibilité du code et simplifie la modification. Ils s'assurent que les fichiers du projet apparaissent comme s'ils avaient été créés par une seule personne. Suivre les normes signifie tout le monde pourra comprendre une section de code et la modifier, si nécessaire, sans égard au moment où il a été rédigé ou par qui. Si vous prévoyez de contribuer au cœur de WordPress, vous devez vous familiariser avec ces normes, car tout code que vous soumettez devra s'y conformer.

La documentation des normes de codage WordPress

La logique derrière les règles

Dans cet article, nous examinerons certaines des normes de codage et essayerons de comprendre quel problème ils essaient de résoudre, c'est-à-dire quelle est la motivation derrière ces règles.
Les catégories de motivations qui apparaissent dans cet article sont:

Prévention des erreurs

Lors de l'écriture de code, nous voulons que nos habitudes nous éloignent le plus possible des erreurs. Les règles suivantes y contribuent.

  • Style d'accolade – La convention la plus importante concernant les accolades est qu'elles doivent toujours être utilisées, même lorsqu'elles ne sont pas nécessaires. Ceci afin que si dans le futur du code est ajouté à l'instruction qui est exécutée dans le cas de la condition, vous n'aurez pas à vous rappeler d'ajouter des accolades autour de l'instruction entière – les accolades seront déjà là, et tout vous il faut ajouter votre code à l'intérieur.
  • Supprimer les espaces de fin – Selon la documentation PHP, «Si un fichier ne contient que du code PHP, il est préférable d'omettre la balise de fermeture PHP à la fin du fichier. Cela empêche les espaces blancs accidentels ou l'ajout de nouvelles lignes après la balise de fermeture PHP, ce qui peut provoquer des effets indésirables car PHP commencera la mise en mémoire tampon de la sortie lorsque le programmeur n'a pas l'intention d'envoyer une sortie à ce point dans le script. »
    Bien que WordPress n'interdise pas l'utilisation de la balise de fermeture, il nécessite la suppression des espaces de fin après celle-ci.
  • Formatage des instructions SQL – Lors de l'insertion de données dans la base de données, la mesure de sécurité la plus importante est de nettoyer les données, c'est-à-dire de s'assurer qu'aucun code malveillant n'est inséré. La façon de le faire est d'échapper aux données, et WordPress a quelques fonctions qui le font. Selon les normes de codage WordPress, l'échappement doit être effectué aussi près que possible de l'heure de la requête, de préférence en utilisant $ wpdb-> préparer (). La documentation des normes de codage envoie au développeur pour en savoir plus sur l'échappement dans la partie Validation des données du Codex.
  • Conditions Yoda – Lors du codage d'une condition (si ($ x == 3)) qui compare une variable à une valeur, nous utilisons un double signe égal. Mais nous pourrions facilement omettre accidentellement un signe égal, ce qui entraînerait l'attribution de la valeur à la variable, ce qui est très probablement une conséquence indésirable. L'analyseur PHP ne nous avertirait pas à ce sujet car il est parfaitement légal, même si ce n'est pas souhaitable, de le faire.
    Un bon moyen d'éviter une telle erreur est de toujours placer la variable sur le côté droit et de placer les constantes, les littéraux ou les appels de fonction sur le côté gauche. De cette façon, si vous omettez accidentellement un signe égal, vous obtiendrez une erreur d'analyse, car vous ne pouvez pas attribuer à une constante Ce type de condition est appelé conditions Yoda, et les normes de codage WordPress vous obligent à écrire vos conditions de cette façon.

Lisibilité

Une lisibilité plus facile signifie que lorsque vous lisez du code que vous n'avez pas écrit, vous pouvez le scanner facilement et vous concentrer sur ce qu'il fait, plutôt que d'essayer de déchiffrer le début et la fin, de surmonter les problèmes d'alignement et de surmonter d'autres problèmes visuellement distrayants. compte.

  • Définition de tableaux – Un tableau peut être créé en utilisant la construction de langage array (). Mais il existe une courte syntaxe de tableau qui remplace tableau () avec [].
    Les normes de codage WordPress recommandent d'utiliser la syntaxe de tableau long car elle est généralement plus lisible que la syntaxe de tableau court, en particulier pour ceux qui ont des difficultés de vision. De plus, il est beaucoup plus descriptif pour les débutants.
  • le Ouverture et fermeture de balises PHP règle est là pour améliorer la lisibilité. Les règles exigent que lors de l'incorporation d'extraits de code PHP multilignes dans un bloc HTML, les balises PHP open et close doivent être sur une ligne par elles-mêmes.
    L'application de cette règle permet de suivre l'entrelacement de PHP en HTML et de remarquer rapidement si une balise PHP est manquante.
  • Utilisation sinon si, ne pas sinon si – PHP permet 2 types de syntaxe pour les structures de contrôle (si, tandis que, pour, pour chaque, et commutateur). Le premier type est celui habituel, utilisant des accolades ouvrantes et fermantes. La seconde est appelée syntaxe alternative pour les structures de contrôle, ce qui signifie que la forme de base de la syntaxe this est de changer l'accolade ouvrante en deux-points (:) et l'accolade fermante en fin si;, en attendant;, endfor;, endforeach;, ou interrupteur d'extrémité;, respectivement.
    Étant donné que les normes de codage WordPress permettent d'utiliser la syntaxe alternative, et que cette syntaxe n'est pas compatible avec sinon si, les normes de codage WordPress dictent l'utilisation sinon si, ne pas sinon si afin d'être toujours compatible avec les deux types de syntaxe des structures de contrôle.
  • Conventions de nommage:
    Le but principal des conventions de nommage est de réduire l'effort nécessaire pour lire et comprendre le code source (vous pouvez trouver d'autres golas ici). Par conséquent, les règles spécifiques n'ont pas d'importance – ce qui compte, c'est que tout le monde les suive,

    • lettres minuscules dans les noms de variable, d'action / filtre et de fonction et des mots séparés via des traits de soulignement.
    • Les noms de classe doivent utiliser des mots en majuscules séparés par des traits de soulignement.
    • Les constantes doivent être en majuscules avec des traits de soulignement séparant les mots.
    • Conventions de nom de fichier aussi.
  • le Valeurs d'indicateur auto-explicatives pour les arguments de fonction – PHP ne prend pas en charge les arguments nommés (les appels de fonction qui indiquent clairement le nom de chaque paramètre dans l'appel de fonction), et par conséquent, lorsque nous voyons un appel de fonction, nous ne savons pas ce que les valeurs signifient à moins de rechercher le définition de la fonction. Le code peut être rendu plus lisible en utilisant des valeurs de chaîne descriptives, au lieu de booléens.
    Par exemple, définissez les arguments d'une fonction de cette façon: fonction manger ($ quoi, $ vitesse = 'lentement') entraîne un appel de fonctions clair: manger («champignons», «lentement»); . C'est plus clair que cette définition de fonction: fonction manger ($ quoi, $ lentement = vrai) car son appel de fonction utilise une valeur booléenne: manger («champignons», vrai); ce qui n'est pas clair si vous ne vous souvenez pas de la définition de la fonction.
  • Les normes de codage permettent d'utiliser les opérateurs ternaires, mais ils limitent leur utilisation à leur faire tester si l'énoncé est vrai et non faux. Sinon, cela devient déroutant. (Une exception consisterait à utiliser ! vide(), car le test de faux ici est généralement plus intuitif.)
  • Aucune utilisation de Clever Code – Cette règle couvre beaucoup de terrain, ayant de nombreux exemples de code dont le dinominateur commun est qu'il est succinct mais déroutant.
    Les normes de codage WordPress préféreront toujours la lisibilité à l'intelligence ou à la brièveté.
    Le code intelligent comprend des éléments tels que

    • en utilisant le || opérateur en recherchant l'existence d'une variable,
    • comparaisons lâches (un double signe égal (==) au lieu d'un triple signe égal (===)),
    • placer les affectations dans des conditions,
    • aller à déclarations,
    • le eval () construction,
    • le create_function () fonction
      Un code «intelligent» qui est autorisé, même s'il doit le commenter explicitement, est In a commutateur , il est normal que plusieurs cas vides tombent dans un bloc commun. Si un cas contient un bloc, il passe au bloc suivant.
  • Formatage des instructions SQL – une autre règle concernant les instructions SQL est que lors du formatage des instructions SQL, vous pouvez les diviser en plusieurs lignes et les indenter si elles sont suffisamment complexes pour le justifier. La plupart des déclarations fonctionnent bien sur une seule ligne. Mettez toujours en majuscule les parties SQL de l'instruction comme MISE À JOUR ou .

Maintenance simplifiée

  • Les fonctions anonymes sont autorisées, mais ne doivent pas être passées en tant que rappel de filtre ou d'action, car elles ne peuvent pas être supprimées par remove_action () / remove_filter ().
  • Les anciennes versions de PHP ne prennent pas en charge les balises PHP abrégées et par conséquent, ces balises ne sont pas autorisées.
  • Interpolation pour nommer les hooks dynamiques – Les hooks dynamiques sont des hooks qui incluent des valeurs dynamiques dans leur nom de balise, par exemple $ new_status _ $ post-> post_type (publier_post). Ces hooks doivent être construits en insérant les variables entre les constantes, et non en les concaténant sous forme de chaînes. Les normes de codage WordPress expliquent exactement comment les construire techniquement, mais ajoutent également une règle de contenu – selon laquelle, lorsque cela est possible, les valeurs dynamiques dans les noms de balises doivent être aussi succinctes et précises que possible. $ user_id est beaucoup plus auto-documentée que, disons, $ this-> id.
  • Opérateur de contrôle d'erreur @

Comme indiqué dans la documentation PHP:

PHP prend en charge un opérateur de contrôle d'erreur: le signe arobase (@). Lorsqu'ils sont ajoutés à une expression en PHP, tous les messages d'erreur qui pourraient être générés par cette expression seront ignorés.

Bien que cet opérateur existe dans Core, il est souvent utilisé paresseusement au lieu d'effectuer une vérification d'erreur appropriée. Son utilisation est fortement déconseillée, car même la documentation PHP le déclare également:

  • Pas extrait() – extract est une fonction qui importe des variables dans la table de symboles courante à partir d'un tableau. Cela signifie qu'après son utilisation, de nouvelles variables sont soudainement introduites, sans que le code ne montre comment elles sont apparues. Cela rend le code plus difficile à déboguer et à comprendre, comme l'a expliqué Joseph Scott.

Certaines règles sont là pour rendre le code cohérent pour tous les développeurs et plates-formes de développement. Ce sont des règles dont, d'une part, nous pouvons parfaitement vivre sans et rien n'arriverait au code, mais si elles n'existaient pas, chaque développeur pourrait prendre ses propres décisions concernant le format du code, mais le code serait alors différent d'un développeur à l'autre. Bien que de telles différences ne soient pas révolutionnaires, elles peuvent néanmoins être gênantes, par exemple lors de la comparaison de 2 versions du même fichier, etc.
Ainsi, au nom de la cohérence du code, les normes de codage WordPress vous évitent d'avoir à prendre ces décisions – il vous suffit d'appliquer les règles et de ne pas y penser autrement.

Mise en forme cohérente ou élimination des décisions

Comment intégrer les normes de codage WordPress dans votre routine de codage

Bien sûr, personne ne s’attend à ce que vous vous souveniez de toutes ces règles lorsque vous écrivez du code. La meilleure façon de les intégrer est via votre IDE, et si ce n'est pas possible, via un outil externe

PHP_CodeSniffer

PHP_CodeSniffer tokenise les fichiers PHP, JavaScript et CSS pour détecter et corriger les violations d'un ensemble défini de normes de codage. Voici les normes de codage WordPress pour PHP_CodeSniffer

Intégrer les normes de codage dans PHPStorm

Voici des ressources vous guidant sur la façon d'intégrer les normes de codage WordPress dans PHPStorm:

Code VS

VS Code a également un moyen de configurer des normes de codage WordPress pour votre site, thème ou plug-in à l'aide de VS Code.

Sommaire

Dans cet article, nous avons passé en revue certaines des normes de codage WordPress concernant PHP, pour mieux comprendre d'où elles viennent, quels sont leurs objectifs et pourquoi nous devrions les suivre.

Cet article n'est en aucun cas un compte rendu exhaustif des normes de codage WordPress. Je vous recommande de tout cœur de consulter la documentation WordPress PHP Coding Standards et de divulguer tous ses secrets.