web-dev-qa-db-fra.com

Ignorer les extraits de code dans php_codesniffer

Il est possible d'ignorer certaines parties du code à partir d'un fichier PHP lorsqu'il est analysé par PHP_CodeSniffer?

51
Madalina

Oui, il est possible avec @CodingStandardsignorestart et @CodingStandardsignoreend Annotations

<?php
some_code();
// @codingStandardsIgnoreStart
this_will_be_ignored();
// @codingStandardsIgnoreEnd
some_other_code();

Il est également décrit dans la documentation.

76
Anti Veeranna

Vous pouvez utiliser la combinaison: @codingStandardsIgnoreStart et @codingStandardsIgnoreEnd ou vous pouvez utiliser @codingStandardsIgnoreLine .

exemple:

<?php

command1();
// @codingStandardsIgnoreStart
command2(); // this line will be ignored by Codesniffer
command3(); // this one too
command4(); // this one too
// @codingStandardsIgnoreEnd

command6();

// @codingStandardsIgnoreLine
command7(); // this line will be ignored by Codesniffer
32
Martin Vseticka

Avant la version 3.2.0, php_codesniffer a utilisé une syntaxe différente pour ignorer des parties du code à partir du fichier. Voir la Anti Veeranna et Martin Vseka's réponses. L'ancienne syntaxe sera supprimée dans la version 4.0

Php_codesniffer utilise maintenant // phpcs:disable et // phpcs:enable commentaires pour ignorer des parties des fichiers et // phpcs:ignore ignorer une ligne.

Maintenant, il est également possible de désactiver ou d'activer des codes de message d'erreur spécifiques, des reniflements, des catégories de reniflications ou des normes de codage entières. Vous devez les spécifier après des commentaires. Si nécessaire, vous pouvez ajouter une note expliquant pourquoi les renifs sont en train de désactiver et de réactiver en utilisant le -- séparateur.

<?php

/* Example: Ignoring parts of file for all sniffs */
$xmlPackage = new XMLPackage;
// phpcs:disable
$xmlPackage['error_code'] = get_default_error_code_value();
$xmlPackage->send();
// phpcs:enable

/* Example: Ignoring parts of file for only specific sniffs */
// phpcs:disable Generic.Commenting.Todo.Found
$xmlPackage = new XMLPackage;
$xmlPackage['error_code'] = get_default_error_code_value();
// TODO: Add an error message here.
$xmlPackage->send();
// phpcs:enable

/* Example: Ignoring next line */
// phpcs:ignore
$foo = [1,2,3];
bar($foo, false);

/* Example: Ignoring current line */
$foo = [1,2,3]; // phpcs:ignore
bar($foo, false);

/* Example: Ignoring one line for only specific sniffs */
// phpcs:ignore Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed
$foo = [1,2,3];
bar($foo, false);

/* Example: Optional note */ 
// phpcs:disable PEAR,Squiz.Arrays -- this isn't our code
$foo = [1,2,3];
bar($foo,true);
// phpcs:enable PEAR.Functions.FunctionCallSignature -- check function calls again
bar($foo,false);
// phpcs:enable -- this is out code again, so turn everything back on

Pour plus de détails, voir documentation de php_codesniffer .

5
Filip Š