Cet article présente principalement la détection automatique du code PHP (git/svn intègre PHP_CodeSniffer), qui a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
Contexte
Lorsque l'entreprise est en développement, chaque fois que le code est soumis à svn ou git, le code sera simplement détecté automatiquement. La logique du code ne peut pas être vérifiée, mais on peut au moins garantir la cohérence du format de codage global. Cette fonction est très utile, j'ai toujours voulu savoir comment elle était implémentée. Ce n'est que récemment que j'ai commencé à comprendre à quoi sert cette détection automatique.
Approche de recherche
- Généralement, le document doc de l'entreprise enregistrera la mise en œuvre spécifique d'une certaine fonction de divers systèmes, et il peut y avoir plus d'un document dans le document. document de l'entreprise Diverses recherches par mots clés sur le document n'ont pas permis de trouver des informations pertinentes
- J'ai trouvé des collègues du service correspondant pour demander comment il avait été mis en œuvre. Le collègue a répondu qu'il s'agissait de PHP_CodeSniffer et a informé le lien github. Et clairement informé : Documentation ? Impossible. Puis j'ai ajouté, tout est disponible sur Internet
- Enfin, j'ai lu quelques articles sur Baidu/Google, et j'ai presque compris
Pratique Une partie de l'installation de
PHP_CodeSniffer Documents de référence
pear install PHP_CodeSniffer
J'ai directement utilisé la méthode poire pour l'installer, ce qui est beaucoup plus simple et plus pratique. La bibliothèque d'extensions installée à l'aide de pear se trouve essentiellement dans le répertoire d'installation de PHP par défaut, comme le mien : /opt/php-7.1.9/lib/php/PHP/CodeSniffer. Vous pouvez vous référer à votre propre répertoire d'installation.
Utilisez PHP_CodeSniffer directement depuis la ligne de commande comme suit :
phpcs test.php
Définissez le format de spécification de code de PHP_CodeSniffer.
# /opt/php-7.1.9/lib/php/PHP/CodeSniffer/src/Standards
# 这个目录下列出了所有可以设置的格式(PSR1,PSR2,PSR12,Zend,Squiz等)
phpcs --config-set default_standard Zend
installation svn/git
Je n'entrerai pas dans la description ici, car j'ai mis du temps à l'installer sur la machine virtuelle, donc Je fais référence aux informations sur Internet.
Intégrez PHP_CodeSniffer dans git/svn Chaque fois qu'un projet svn est déployé, il y aura un fichier de configuration correspondant, qui contient un dossier hooks et qu'il suffit de pré-valider. ajoutez la commande phpcs au fichier.
Le principe de git est le même, il y a un dossier hooks avec un pré-commit dedans.
Différence : le svn de notre entreprise est automatiquement détecté lors du processus de validation, tandis que git est détecté lors du git push. Je suppose qu'il serait préférable que la détection automatique du code soit intégrée au serveur où se trouve le code d'ingénierie. L'hôte distant est directement accessible lorsque svn s'engage. Cependant, lorsque git commit, le code est enregistré dans la branche locale, et ce n'est que lorsque git push est exécuté qu'il est soumis à l'hôte distant, donc git est une opération de détection automatique effectuée pendant git push.
Écrit à la fin
En comprenant la détection automatique du code PHP, j'ai trouvé de nombreux problèmes.
- Je n'ai pas pris l'initiative de réfléchir au problème. Au début, je voulais juste chercher des informations dans la doc au lieu de réfléchir à la façon dont cette fonction est implémentée. Ensuite, je n'ai pas trouvé les informations sur la doc et je suis allé directement chez mes collègues
- Lorsque je travaillais sur les besoins de l'entreprise, j'oubliais souvent de continuer à apprendre et à penser à autre chose. Par exemple, de nombreuses commandes Linux ont été oubliées, et la bibliothèque d'extensions PHP_CodeSniffer est très bonne, j'étudierai l'implémentation spécifique quand j'aurai le temps. Besoin de réfléchir fréquemment aux problèmes
- Grâce à cette détection automatique de code, j'ai découvert que je ne comprenais rien, y compris pear, PSR, svn/git, yum/apt-get, etc. Même si je l'ai déjà utilisé, je ne l'ai pas étudié en profondeur ni fait d'enregistrements correspondants, donc je l'ai rapidement oublié. Si vous lisez un peu plus, vous vous rendrez compte que vous en savez trop peu
- Merci pour les différents matériaux utilisés dans ce processus
Ce qui précède C'est tout le contenu de cet article. J'espère qu'il sera utile à l'étude de tout le monde. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
Solution à l'inaccessibilité des téléphones mobiles WampServer LAN
Utilisation des structures de données PHP7.2
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!