Intégration continue/CodeSniffer PHP

This page is a translated version of the page Continuous integration/PHP CodeSniffer and the translation is 100% complete.

PHP CodeSniffer est un utilitaire pour détecter les erreurs de style de code dans le code PHP. Nous utilisons Composer comme conteneur pour gérer la version de CodeSniffer, les dépendances et l'exécution.

Tout d'abord, récupérez les dépendances du développement en utilisant composer update.

Pour la plupart des extensions, des habillages et des bibliothèques PHP de MediaWiki, l'exécution de composer test exécute également CodeSniffer. En raison de la grande taille du noyau MediaWiki, il est présenté comme une commande séparée, composer phpcs.

Execution locale sans Composer

Si vous rencontrez des problèmes avec les temporisations de Composer, vous pouvez l'exécuter directement avec vendor/bin/phpcs -p -s. Il est important d'exécuter la version de PHP_CodeSniffer installée par Composer dans le vendor/bin de votre dépôt de projets local pour que tous les sniffs soient trouvés. N'utilisez pas la version système indiquée par votre PATH.

Si vous obtenez des erreurs concernant la mémoire, vous pouvez l'exécuter en augmentant cette dernière : vendor/bin/phpcs -p -s -d memory_limit=256M.

Versions

Il est recommandé de saisir une version spécifique dans votre fichier composer.json. Nous essayons de respecter l'esprit de semver.org, mais pas le standard actuel. La principale chose qui nous préoccupe est de nous assurer que quoi qu'il arrive, si vous exécutez composer test, il s'exécutera avec succès si il est déjà passé, et n'échouera pas aléatoirement parce qu'une nouvelle version a été publiée. L'échec aléatoire de la construction est ennuyeux lorsque vous essayez de reporter un patch sur une version ancienne, ou que vous êtes simplement de développer quelque chose et que vous devez interrompre votre travail pour réparer.

Nous utilisons actuellement 0 pour la version majeure, et nous augmentons la version mineure avec les nouveaux sniffs, et la versions de patch avec les corrections de bogues et les améliorations des sniffs existants. La stabilité n'est pas garantie pour le code PHP inclus actuellement.

Voir aussi