Comment utiliser un script hook de pré-commit pour vérifier et corriger automatiquement les problèmes qui ne sont pas conformes aux dernières spécifications du code PHP avant la soumission du code ?
Dans le processus de développement logiciel, la qualité du code est un aspect très important. Une bonne spécification de code peut rendre le code facile à lire, à comprendre et à maintenir. Par exemple, pour le code PHP, suivre les spécifications PSR (PHP Standard Recommendations) peut améliorer la lisibilité et la maintenabilité du code.
Afin de garantir la qualité du code avant que les membres de l'équipe ne soumettent le code, vous pouvez utiliser le script de hook de pré-commit dans les hooks Git pour vérifier et corriger automatiquement les problèmes qui ne sont pas conformes aux dernières spécifications du code PHP. Cela permet aux membres de l'équipe d'identifier et de résoudre instantanément les problèmes de spécification du code avant de valider le code, améliorant ainsi la qualité globale du code.
Un script hook de pré-commit peut être n'importe quel fichier de script exécutable qui peut être exécuté avant chaque validation. Dans cet exemple, nous utiliserons l'outil PHP_CodeSniffer pour vérifier les spécifications du code et PHP-CS-Fixer pour résoudre automatiquement les problèmes.
Ce qui suit est un exemple de script hook de pré-commit qui utilise PHP_CodeSniffer et PHP-CS-Fixer :
#!/bin/sh # Run PHP_CodeSniffer ./vendor/bin/phpcs --standard=PSR2 --colors --ignore=vendor/,tests/ --report=emacs # Run PHP-CS-Fixer ./vendor/bin/php-cs-fixer fix --rules=@PSR2 --using-cache=no --verbose --dry-run # Check the exit code of the previous commands if [ $? -ne 0 ]; then echo "Code style check failed. Please fix the issues before committing." exit 1 fi
Le script ci-dessus utilise d'abord PHP_CodeSniffer pour vérifier la spécification du code, --standard=PSR2
signifie Utilisez la spécification PSR2 pour vérifier et utilisez le paramètre --ignore=vendor/,tests/
pour ignorer le répertoire du fournisseur et le répertoire des tests. --colors
signifie utiliser une sortie colorée, et --report=emacs
signifie utiliser le format de rapport facile à lire d'Emacs. --standard=PSR2
表示使用 PSR2 规范进行检查,并使用 --ignore=vendor/,tests/
参数来忽略 vendor 目录和 tests 目录。--colors
表示使用彩色输出,--report=emacs
表示使用 Emacs 易于阅读的报告格式。
接下来,脚本使用 PHP-CS-Fixer 来自动修复代码规范问题。--rules=@PSR2
表示使用 PSR2 规范进行修复,--using-cache=no
表示不使用缓存,--verbose --dry-run
表示输出详细的修复信息但不实际修改文件。
最后,脚本检查上述两个命令的退出代码。如果有任何问题,脚本会输出错误信息并退出。
要使用这个预提交钩子脚本,您需要将其保存为 .git/hooks/pre-commit
文件,并使其可执行。您还需要安装 PHP_CodeSniffer 和 PHP-CS-Fixer。在上面的脚本中,我们假设这两个工具已经通过 Composer 安装在 vendor/bin
--rules=@PSR2
signifie utiliser la spécification PSR2 pour la réparation, --using-cache=no
signifie ne pas utiliser le cache, --verbose --dry -run
signifie afficher des informations de réparation détaillées mais pas réellement modifier le fichier. Enfin, le script vérifie les codes de sortie des deux commandes ci-dessus. S'il y a des problèmes, le script imprimera un message d'erreur et se terminera. Pour utiliser ce script hook de pré-commit, vous devez l'enregistrer en tant que fichier .git/hooks/pre-commit
et le rendre exécutable. Vous devez également installer PHP_CodeSniffer et PHP-CS-Fixer. Dans le script ci-dessus, nous supposons que ces deux outils sont déjà installés dans le répertoire vendor/bin
via Composer. 🎜🎜Lorsque vous soumettez du code, ce script de hook de pré-validation s'exécutera automatiquement et vérifiera les spécifications du code. S'il y a des problèmes de non-conformité, le script imprimera le message d'erreur correspondant sur la ligne de commande et empêchera la soumission du code. Vous devez résoudre ces problèmes avant de pouvoir soumettre votre code avec succès. 🎜🎜En utilisant des scripts de hook de pré-validation pour vérifier et résoudre automatiquement les problèmes de spécification de code, vous pouvez vous assurer que les membres de l'équipe suivent les dernières spécifications de code PHP avant de valider le code, améliorant ainsi la qualité globale du code. Ceci est particulièrement important pour les grands projets et les grandes équipes, car cela peut réduire la charge de travail liée aux révisions de code, améliorer l'efficacité du développement et réduire le risque de bogues potentiels. À l’aide de cet exemple, vous pouvez adapter votre script hook de pré-commit aux besoins de votre équipe et aux conventions de codage spécifiques. 🎜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!