101 votes

Comment puis-je supprimer les avertissements PHPCS en utilisant des commentaires ?

Mon TestMyClass.php a deux définitions de classes dans le même fichier (classe de tests unitaires), et PHP Code Sniffer se plaint que chaque classe doit être dans un fichier séparé. Comment puis-je supprimer cet avertissement?

class MyClassImpl implements MyInterface
{
    // ...
}

class MyClassTest extends \PHPUnit_Framework_TestCase
{
    // ...
}

130voto

piscator Points 2071

Avec les commentaires suivants, vous pouvez ignorer n'importe quelle partie d'un fichier.

Ignorez tous les sniffs pour le fichier:

``

Ignorez uniquement la ligne actuelle et la suivante:

// phpcs:ignore
public function store($myArray)

Ignorez la ligne actuelle:

public function store($myArray) // phpcs:ignore

Ignorez un certain nombre de lignes dans un fichier:

// phpcs:disable
public function store($myArray): void
{
    if (count($myArray) > 3) {
        // Immense quantité de code hérité que vous ne voulez pas regarder
    }

    return;
}
// phpcs:enable

Avec // phpcs:ignore et // phpcs:disable, vous pouvez également spécifier les messages, les sniffs, les catégories ou les standards que vous souhaitez désactiver, par exemple:

// phpcs:ignore Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed
$foo = [1,2,3];

Si vous voulez en savoir plus sur ce sujet, vous pouvez visiter le wiki. Certains des exemples ont été tirés de là.

``

118voto

Greg Sherwood Points 4763

Vous pouvez demander à PHP_CodeSniffer d'ignorer des fichiers spécifiques ou des lignes dans un fichier en utilisant des commentaires : https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#ignoring-files-and-folders

Dans ce cas, l'erreur sera générée sur votre deuxième définition de classe, donc vous devriez écrire votre deuxième définition comme ceci :

// @codingStandardsIgnoreStart
class MyClassTest extends \PHPUnit_Framework_TestCase
{
    // @codingStandardsIgnoreEnd
    // ...
}

Mais vous pouvez également choisir d'ignorer tout le fichier s'il ne doit pas être vérifié, soit en utilisant le commentaire @codingStandardsIgnoreFile, soit en spécifiant des exclusions en ligne de commande (voir le lien précédent pour plus d'informations).

Si vous trouvez que vous le faites souvent et que vous ne voulez pas ajouter de commentaires à votre code, vous pouvez également créer votre propre norme de codage personnalisée. En supposant que vous utilisiez la norme PSR2 actuellement, vous créeriez un fichier XML (par exemple, mystandard.xml) et incluriez le contenu suivant :

 Ma norme de codage personnalisée.

   0

Ensuite, exécutez PHP_CodeSniffer de cette manière : phpcs --standard=/chemin/vers/mystandard.xml /chemin/vers/code

Avoir votre propre ensemble de règles vous permet de faire beaucoup de choses, y compris changer les messages d'erreur, changer la gravité ou le type d'un message, inclure des vérifications d'autres normes et définir des règles d'ignorance globales. Plus d'informations ici : https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml

36voto

Will Points 412

La syntaxe @codingStandards est obsolète à partir de la version 3.2.0, utilisez phpcs à la place.

Quelques exemples :

// phpcs:disable
// phpcs:ignore
// phpcs:enable

Consultez cette page pour plus d'informations : https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#ignoring-parts-of-a-file

7voto

Brad Points 160

Bien que j'aime la réponse principale, je suggérerais également celle-ci si vous ne vous souciez pas de fichiers spécifiques.

Exécutez cette commande :

phpcs --config-set show_warnings 0

comme vu ici : https://github.com/squizlabs/PHP_CodeSniffer/wiki/Configuration-Options#hiding-warnings-by-default

Remarque concernant le réglage des configurations de cette manière : elles seront effacées si vous supprimez le dossier vendor ou mettez à jour la bibliothèque, et vous devrez les définir à nouveau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X