Dans mon dernier article pour Torque, j’ai parlé de la raison pour laquelle je pense que le Code PHP a plus de sens à suivre les normes de codage établies par la communauté PHP que celles établies par WordPress Core. Ces normes sont fondées sur la nécessité de répondre aux besoins des bibliothèques de codes existantes et sont limitées aux caractéristiques linguistiques drsquoune durée de 10 ans ou plus. Lorsque lancez un nouveau plugin, site Web ou application WordPress, si la situation est complètement différente, n’avez aucune raison de prendre la même décision. Dans le prolongement de j’aimerais montrer techniquement comment mettre en œuvre et respecter des normes prédéterminées, telles que PSR 2 ou même les normes de codage WordPress. Vous pouvez le faire avec un outil appelé PHP Code sniffer, et dans je vais montrer comment utiliser cet outil et drsquoautres outils pour vérifier que votre code suit ces règles et corriger automatiquement la plupart des écarts. De plus, nous allons entrer le Code.
Pourquoi les normes de codage sont elles importantes? Souvent, lorsque les gens écrivent des normes de codage, ils disent que crsquoest important parce qursquoil rend le code plus lisible et réduit la friction drsquoavoir plusieurs développeurs dans un projet. Crsquoest vrai, je suis drsquoaccord. Mais ce nrsquoest pas la raison pour laquelle jrsquoaime vraiment imposer et corriger automatiquement les styles de code dans mon code. Je pense qursquoil nrsquoest pas nécessaire de srsquoinquiéter trop du style du Code afin que je puisse attacher moins de lettres à lrsquoécran et me concentrer davantage sur le Code réel. Il nrsquoest pas facile drsquoécrire du Code, il est utile drsquoy prêter plus drsquoattention. Je pense qursquoil est vraiment important de penser moins à des choses que je nrsquoai pas besoin de penser. Par exemple, je pourrais réfléchir à la façon de concevoir une représentation objet drsquoune requête HTTP. Il existe de nombreuses façons tout à fait efficaces de résoudre ce problème. Au lieu de cela, je suivrai, comme tout le monde, le Protocole établi par la norme PSR 7.
Il ne srsquoagit pas seulement de suivre les normes pour des raisons de normes, ce qui en vaut la peine lorsque choisissez un cadre pour lrsquoexécution du Code qui nrsquoaffecte pas le Code que écrivez.
Je n’ai pas l’intention de réécrire WordPress, donc il a été construit pour l’interopérabilité avec le cadre PHP. L’api WordPress rest et le WP CLI nous permettent de résoudre bon nombre de ces problèmes. Nous parlons plutôt de votre code de site personnalisé ou de votre plug in. Renifler le Code PHP renifler cherche du Code qui sent mauvais. Le terme « odeur» désigne lrsquoodeur du Code. Lrsquoodeur du Code est un motif dans le Code et, si elle est présente, peut indiquer un problème commun dans le Code. Cela ne veut pas dire qursquoil ne fonctionne pas, mais ce nrsquoest pas optimal. Une longue leçon, par exemple, est désagréable. Cela ne signifie pas qursquoil est négatif, mais pensez à la raison pour laquelle il est si long qursquoil pourrait conduire à un code amélioré pour des solutions communes basées sur les problèmes que cette odeur suggère.
Les renifleurs de code nous permettent de
Voici la commande pour ajouter un renifleur de code au projet en utilisant Composer: composer a besoin de squizlabs php _ codesbuffer Dev Notez que jrsquoai utilisé le drapeau Dev. Ceci lrsquoajoute à la section
Utilisé pour la production ou la publication sans cette dépendance. Maintenant, ajoutez un script nommé
{Y}
}
Maintenant, chaque fois que nous lancerons le script is use
Dans phpstorm, pouvez aller à la section styles de code de vos paramètres. Dans les paramètres PHP, il y a une option appelée set from à droite. Vous verrez PSR 2 et WordPress comme options. Je suggère qursquoon en choisisse un. Le format automatique du Code correspond ensuite aux commandes standard et de nettoyage du Code. Compsoer a besoin drsquoamis de php php CS fixer Dev, un gadget magique qui résout la plupart des problèmes de code. non, il expliquera le problème drsquoune manière que je pense facile à résoudre. Ajoutons un autre script au fichier composer, un script pour Lint:
{Y}
}
} Notez que je mets tout le Code de chaque tâche dans le script. Vers le Haut
Ensuite, nous ajouterons un script pour appeler les autres dans le bon ordre. Lorsque le renifleur recherche du Code qui pourrait être un problème de maintenance à long terme, lInter cherche des erreurs. Notez que ni lrsquoun ni lrsquoautre nrsquoexécute le Code. Tout le monde nrsquoanalyse que le fichier texte où se trouve le Code. Les linteaux ne doivent pas remplacer les essais. Mais jrsquoaime en exécuter un entre mon correctif et le test, de sorte que si jrsquoai perdu quelque chose de mal, ou si le correctif a causé une erreur, il sera marqué sans exécuter le test et ne réussira en aucun cas.
Voici quelques liens PHP. Jrsquoaime Lint parallèle, parce qursquoil est plus rapide de traiter plusieurs fichiers à la fois, donc traiter un fichier à la fois. Le nom décrit les avantages. Super spectacle. Installation: le compositeur a besoin de Jakub onderka php Parallel Lint la commande pour lInter est
}
Maintenant que nous avons ces trois scripts, nous pouvons tous les exécuter et ensuite tester phpunit avec une seule commande. Je pense qursquoil est important drsquoexécuter lints et patch avant le test. De cette façon, Nous testons également la correction automatique. Il est douteux que ce processus entraîne des erreurs, mais il est facile de les éviter en les exécutant dans le bon ordre.
Plus important encore, si le Code sent mauvais, il nrsquoest pas prêt pour les tests. Donc, lrsquoordre dans lequel jrsquoaime faire les choses est de corriger le style de code, effacer les erreurs évidentes dans le Code, vérifier les violations restantes du style de code, et seulement après que le Code est organisé correctement
Te Rappelez qursquoaucun code nrsquoa été réellement exécuté pendant Lint et Fixed Essayez le code ci dessous, qui est la dernière partie du script, avec un nouveau script appelé
{Y}
}
} Jrsquoaime Cette modularité parce que cela signifie que je peux exécuter chaque processus seul, mais la plupart du temps je nrsquoutilise que la commande