Après une heure à parcourir le rapport, j'ai trouvé la liste suivante, cela pourrait être utile pour tout le monde, je pense.
J'essaierai de le garder à jour dès que je trouverai d'autres avertissements / erreurs:
Avertissements
La ligne dépasse 80 caractères; contient X caractères
Ou
La ligne dépasse la limite maximale de 100 caractères; contient X caractères
Ceux-là sont ceux que j'ai vus le plus, ils sont explicites, c'est une bonne pratique de garder les lignes de codage petites afin de garder un code propre et lisible.
Aucun espace trouvé après une virgule dans l'appel de fonction
Vous avez appelé une fonction qui reçoit des paramètres et n'ajoutez pas d'espace après la virgule. Exemple: strrchr($bla,".")
devrait êtrestrrchr($bla, ".")
Attendu \ "tandis que (...) {\ n \"; trouvé \ "tandis que (...) \ n {\ n \"
\ "Foreach (...) {\ n \" attendu; trouvé \ "pour chaque (...) \ n {\ n \"
Attendu \ "si (...) {\ n \"; trouvé \ "si (...) \ n {\ n \"
Attendu \ "} else {\ n \"; trouvé \ "} \ n sinon {\ n \"
Cela signifie que vous avez renvoyé une ligne avant la parenthèse ouvrante de ces instructions PHP.
Exemple d'une mauvaise syntaxe avec une instruction if / else:
if (true)
{
}
else
{
}
Devrait être
if (true) {
} else {
}
La parenthèse fermante et l'accolade ouvrante d'une déclaration de fonction multiligne doivent être sur la même ligne
La plupart du temps, cela se produit dans le constructeur où vous déclarez quelque chose comme ceci:
public function __construct(
ProductFactory $productFactory,
Test $test
)
{
}
Attendu qu'il devrait être:
public function __construct(
ProductFactory $productFactory,
Test $test
) {
}
Le caractère de fin de ligne n'est pas valide; attendu \ "\ n \" mais trouvé \ "\ r \ n \"
Cela se produit la plupart du temps au début du fichier, cela est dû à la façon dont votre IDE code le caractère de retour.
La variable \ "votre_variable \" n'est pas au format de casquettes de chameau valide
Chaque variable doit utiliser le format des casquettes de chameau, donc $your_variable
devrait être$yourVariable
La variable \ "one2Three \" contient des nombres mais cela est déconseillé
Évitez d'utiliser des nombres dans vos variables
Les structures de contrôle en ligne ne sont pas autorisées
Vous ne devez pas utiliser de structures de contrôle en ligne telles que:
else $test = true;
Tu devrais utiliser:
else {
$test = true;
}
L'accolade ouvrante d'une classe doit être sur la ligne après la définition
Vous avez renvoyé une ligne lors de la déclaration d'une classe:
class Test
{
Vous devez garder l'accolade d'ouverture sur la même ligne:
class Test {
La variable de membre privé \ "votreVariable \" doit contenir un trait de soulignement de tête
La variable membre protégée \ "yourVariable \" doit contenir un trait de soulignement de tête
Vous devez ajouter un trait de soulignement à vos variables membres protégées et privées: $_yourVariable
Contrairement à ces deux, si vous ajoutez un trait de soulignement dans votre variable publique, vous pouvez obtenir:
La variable de membre public \ "_ yourVariable \" ne doit pas contenir de trait de soulignement de début.
Le paramètre de méthode $ bla n'est jamais utilisé
Vous avez passé un paramètre à une méthode mais vous ne l'utilisez jamais.
La déclaration de fonction multiligne n'est pas mise en retrait correctement; attendait 8 espaces mais a trouvé X
Vous avez ajouté trop d'indentation à vos paramètres de déclaration de fonction:
public function __construct(ProductRepository $productRepository,
ListsInterface $listsInterface,
Data $helper
) {
Devrait être:
public function __construct(ProductRepository $productRepository,
ListsInterface $listsInterface,
Data $helper
) {
Détection d'une méthode inutile possible détectée
Vous remplacez une méthode sans ajouter de modifications, par exemple:
public function __construct(Context $context) {
parent::__construct($context);
}
Charge de la méthode LSD () détectée dans la boucle
Vous utilisez la load()
méthode à l'intérieur d'une boucle qui n'est pas recommandée et doit être évitée.
Votre code ressemble très probablement à ceci:
foreach(...) {
$model->load();
}
Si vous chargez un modèle dans une boucle, c'est en effet assez mauvais en termes de performances. Si vous avez seulement besoin de récupérer quelques attributs, vous devez utiliser des collections à la place.
La complexité cyclomatique de la fonction (X) dépasse 10; envisager de refactoriser la fonction
Si vous n'êtes pas familier avec la complexité cyclomatique, je vous suggère de lire ce post: https://pdepend.org/documentation/software-metrics/cyclomatic-complexity.html . Cet avertissement signifie essentiellement qu'il y a trop de boucles et de conditions dans votre fonction.
L'instanciation directe d'objets est découragée dans Magento 2
Cela est dû au fait que vous instanciez directement un objet en appelant la classe, par exemple:
new \Zend_Filter_LocalizedToNormalized
Vous devez utiliser l'injection de dépendance ou un dernier recours, le gestionnaire d'objets.
Les commentaires se réfèrent à une tâche TODO
L'un de vos commentaires contient le @TODO
drapeau suivant .
Évitez les déclarations IF qui sont toujours vraies ou fausses
Vous avez créé une condition qui semble toujours vraie ou fausse.
Par exemple:
$variable = "6";
...
// More code that doesn't change $variable
...
if ($variable)
les erreurs
L'espace de noms pour la classe \ "Class \" n'est pas spécifié.
Vous manquez la use Path\To\Class;
déclaration au début de votre classe.