Nachdem ich den Bericht eine Stunde lang durchgearbeitet hatte, kam ich auf die folgende Liste, die für alle hilfreich sein könnte, die ich denke.
Ich werde versuchen, es auf dem neuesten Stand zu halten, sobald ich weitere Warnungen / Fehler finde:
Warnungen
Zeile überschreitet 80 Zeichen; enthält X Zeichen
Oder
Zeile überschreitet die maximale Länge von 100 Zeichen. enthält X Zeichen
Diejenigen, die ich am häufigsten gesehen habe, sind selbsterklärend. Es ist eine gute Praxis, die Codierungszeilen klein zu halten, um einen sauberen und lesbaren Code zu erhalten.
Kein Leerzeichen nach Komma im Funktionsaufruf gefunden
Sie haben eine Funktion aufgerufen, die Parameter empfängt und nach dem Komma kein Leerzeichen eingefügt hat. Beispiel: strrchr($bla,".")
sollte seinstrrchr($bla, ".")
Erwartet "while (...) {\ n \"; "while (...) \ n {\ n \" gefunden
Erwartet "foreach (...) {\ n \"; \ "foreach (...) \ n {\ n \" gefunden
Erwartet "if (...) {\ n \"; gefunden \ "if (...) \ n {\ n \"
Erwartet \ "} else {\ n \"; \ "} \ n sonst {\ n \" gefunden
Das bedeutet, dass Sie eine Zeile vor der öffnenden Klammer dieser PHP-Anweisungen zurückgegeben haben.
Beispiel für eine falsche Syntax mit einer if / else-Anweisung:
if (true)
{
}
else
{
}
Sollte sein
if (true) {
} else {
}
Die schließende Klammer und die öffnende Klammer einer mehrzeiligen Funktionsdeklaration müssen sich in derselben Zeile befinden
Meistens passiert es in dem Konstruktor, in dem Sie so etwas deklarieren:
public function __construct(
ProductFactory $productFactory,
Test $test
)
{
}
Es sollte sein:
public function __construct(
ProductFactory $productFactory,
Test $test
) {
}
Zeilenendezeichen ist ungültig; erwartet \ "\ n \" aber gefunden \ "\ r \ n \"
Passiert die meiste Zeit am Anfang der Datei. Dies liegt an der Art und Weise, wie Ihre IDE das Rückgabezeichen codiert.
Die Variable "Ihre_Variable" hat kein gültiges Kamelkappenformat
Jede Variable muss das Kamelkappenformat verwenden, $your_variable
sollte es also sein$yourVariable
Die Variable "one2Three" enthält Zahlen, aber davon wird abgeraten
Vermeiden Sie die Verwendung von Zahlen in Ihren Variablen
Inline-Kontrollstrukturen sind nicht erlaubt
Sie sollten keine Inline-Kontrollstrukturen verwenden, wie zum Beispiel:
else $test = true;
Du solltest benutzen:
else {
$test = true;
}
Die öffnende Klammer einer Klasse muss sich in der Zeile nach der Definition befinden
Sie haben beim Deklarieren einer Klasse eine Zeile zurückgegeben:
class Test
{
Sie sollten die öffnende Klammer in derselben Zeile belassen:
class Test {
Die private Mitgliedsvariable "yourVariable" muss einen führenden Unterstrich enthalten
Die geschützte Mitgliedsvariable "yourVariable" muss einen führenden Unterstrich enthalten
Sie sollten Ihren geschützten und privaten Mitgliedsvariablen einen führenden Unterstrich hinzufügen: $_yourVariable
Im Gegensatz zu diesen beiden können Sie Folgendes erhalten, wenn Sie einen Unterstrich in Ihre öffentliche Variable einfügen:
Die öffentliche Mitgliedsvariable "_ yourVariable" darf keinen führenden Unterstrich enthalten.
Der Methodenparameter $ bla wird nie verwendet
Sie haben einen Parameter an eine Methode übergeben, verwenden ihn jedoch nie.
Mehrzeilige Funktionsdeklaration nicht richtig eingerückt; 8 Leerzeichen erwartet, aber X gefunden
Sie haben Ihren Funktionsdeklarationsparametern zu viele Einrückungen hinzugefügt:
public function __construct(ProductRepository $productRepository,
ListsInterface $listsInterface,
Data $helper
) {
Sollte sein:
public function __construct(ProductRepository $productRepository,
ListsInterface $listsInterface,
Data $helper
) {
Möglicherweise unbrauchbares Überschreiben der Methode erkannt
Sie überschreiben eine Methode, ohne Änderungen hinzuzufügen. Beispiel:
public function __construct(Context $context) {
parent::__construct($context);
}
Modell LSD-Methode load () in Schleife erkannt
Sie verwenden die load()
Methode in einer Schleife, die nicht empfohlen wird und vermieden werden muss.
Höchstwahrscheinlich sieht Ihr Code so aus:
foreach(...) {
$model->load();
}
Wenn Sie ein Modell in eine Schleife laden, ist die Leistung in der Tat ziemlich schlecht. Wenn Sie nur einige Attribute abrufen müssen, sollten Sie stattdessen Sammlungen verwenden.
Die zyklomatische Komplexität (X) der Funktion überschreitet 10; Überlegen Sie, ob Sie die Funktion überarbeiten möchten
Wenn Sie mit der zyklomatischen Komplexität nicht vertraut sind, empfehlen wir Ihnen, diesen Beitrag zu lesen: https://pdepend.org/documentation/software-metrics/cyclomatic-complexity.html . Diese Warnung bedeutet im Grunde, dass Ihre Funktion zu viele Schleifen und Bedingungen enthält.
Direkte Objektinstanziierung wird in Magento 2 nicht empfohlen
Dies wird dadurch verursacht, dass Sie ein Objekt direkt instanziieren, indem Sie die Klasse aufrufen. Beispiel:
new \Zend_Filter_LocalizedToNormalized
Verwenden Sie die Abhängigkeitsinjektion oder einen letzten Ausweg, den Objektmanager.
Kommentare beziehen sich auf eine TODO-Aufgabe
Einer Ihrer Kommentare enthält die folgende @TODO
Flagge.
Vermeiden Sie IF-Anweisungen, die immer wahr oder falsch sind
Sie haben eine Bedingung erstellt, die immer wahr oder falsch zu sein scheint.
Beispielsweise:
$variable = "6";
...
// More code that doesn't change $variable
...
if ($variable)
Fehler
Der Namespace für die Klasse "Class" ist nicht angegeben.
Sie vermissen die use Path\To\Class;
Aussage zu Beginn Ihrer Klasse.