Welche Tools stehen zur Überprüfung des Magento 2-Codierungsstandards zur Verfügung?

14

Ich arbeite derzeit an einem Magento 2-Projekt zur Überprüfung des Codierungsstandards.

Gibt es ein anderes Tool als PHP_CodeSniffer , um den Stand von Magento 2 und PHP-Codierung zu überprüfen?

Rama Chandran M
quelle

Antworten:

9

Magento 2 verwendet den Kodierungsstandard ECGM2

Sie können von hier herunterladen

https://github.com/magento-ecg/coding-standard

Der Magento Code Sniffer Coding Standard für EKGs ist ein Satz von Regeln und Sniffs für das PHP_CodeSniffer- Tool.

Hiermit können Sie Ihren Code automatisch auf einige der häufigsten Probleme mit der Magento- und PHP-Codierung prüfen, z.

  1. unformatierte SQL-Abfragen; SQL-Abfragen innerhalb einer Schleife;
  2. direkte Instanziierung von Magier- und Enterprise-Klassen;
  3. unnötiges Sammelladen;
  4. übermäßige Codekomplexität;
  5. Nutzung gefährlicher Funktionen; Verwendung von PHP Superglobals;

und viele andere.

  1. EKG für Magento
  2. EcgM2 für Magento 2

Sowohl Magento als auch Magento 2 werden unterstützt.

Prinz Patel
quelle
Dieses Tool ist zur Erweiterung für den gesamten Magento 2 Code Check gedacht.
Rama Chandran M
Sie können das Magento 2-Modul mit diesem Befehl nach der ECGM2-Installation überprüfen "phpcs --standard = EcgM2 / path / to / module"
Prince Patel
Sicher Patel. Für jedes andere Tool fügen Sie bitte Kommentare hinzu.
Rama Chandran M
Soll ich wissen, dass die W3C-Validierung für die Magento 2-Code-Validierung erforderlich ist?
Rama Chandran M
Die W3C-Validierung gilt für die Magento-Webseitenpräsentation, nicht für den Codierungsstandard. Magento verwendet sowohl für Magento 1 als auch für Magento 2 nur EKG, um den Erweiterungscodierungsstandard zu überprüfen.
Prinz Patel
12

Magento 2 verwendet den Kodierungsstandard ECGM2:

  1. Installieren Sie Coding Standard:

    cd to/your/magento/install/directory
    composer create-project --repository=https://repo.magento.com magento/marketplace-eqp magento-coding-standard
    composer require magento/marketplace-eqp
    cd magento-coding-standard

    Wenn Sie eine Fehlermeldung erhalten:

    Schwerwiegender PHP-Fehler: Nicht abgefangene PHP_CodeSniffer_Exception: Der referenzierte Sniff "MEQP1.Exceptions.Namespace" existiert nicht

    vendor/bin/phpcs --config-set installed_paths ../../..
    vendor/bin/phpcs --config-set m2-path <path-to-magento2> ( for eg. sudo vendor/bin/phpcs --config-set m2-path  /var/www/html/magento2 )
  2. Testen Sie Ihre M2-Erweiterung:

    Verwenden Sie phpcbf, um Fehler automatisch zu korrigieren:

    vendor/bin/phpcbf <path-to-magento2>/app/code/Vendor/Module/Block/ --standard=MEQP2 --no-patch --extensions=php,phtml,xml,css,js

    Für Datei anzeigen

    vendor/bin/phpcbf <path-to-magento2>/app/code/Vendor/Module/view/frontend/templates --standard=MEQP2 --extensions=php,phtml 

    So überprüfen Sie Fehler / Warnungen:

    vendor/bin/phpcs <path-to-magento2>/app/code/Vendor/Module/Block/ --standard=MEQP2 --extensions=phtml,xml,css,js,php

    Für Datei anzeigen

    vendor/bin/phpcbf <path-to-magento2>/app/code/Vendor/Module/view/frontend/templates --standard=MEQP2 --extensions=php,phtml

    Lösung für einige Warnungen finden Sie hier:

    Wie behebe ich Warnungen / Fehler, die im technischen Überprüfungsbericht von Magento Marketplace angezeigt werden?

  3. Technische Überprüfung des Marktplatzes:

    vendor/bin/phpcs /path/to/your/extension --standard=MEQP2 --severity=10
  4. Überprüfen Sie die Magento 2-Erweiterung:

    Laden Sie "validate_m2_package.php" von https://gist.github.com/alankent/fcf280dd9c599921b71d#file-validate_m2_package_v2-php herunter und legen Sie es im Stammverzeichnis von magento ab:

    cd <path-to-magento2>
    php validate_m2_package.php Vendor_Module.zip
Charvi Parikh
quelle
Bevor Sie loslegen, composer require magento/marketplace-eqpbeheben Sie dies composer config repositories.magento-eqp git https://github.com/magento/marketplace-eqp. github.com/magento/marketplace-eqp/issues/2
dunkel
8

Neben Prince Patels antworten ...

Magento 2 verwendet auch den Kodierungsstandard PSR-2 , sodass Sie auch ausführen können phpcs --standard=PSR2 /path/to/module. Zum Beheben von PSR-2 "Fehlern" können Sie " PHP Code Beautifier and Fixer (phpcbf) " verwenden.

Bei mir funktioniert das sehr gut ...

  • PSR2 Fehler automatisch beheben
  • Berichte erstellen
  • Berichte in einer Datei zusammenführen

Befehle:

phpcbf --standard=PSR2 ./app/
phpcs --report-gitblame=CS-blame --report-source=CS-code --report-full=CS-full ./app/
cat CS-* >> ECG-PSR2 ; rm CS-*

Wenn Sie verwenden git, können Sie einen pre-commit Hook hinzufügen , um phpcs/ phpcbfautomatisch auszuführen, bevor Sie Ihre Änderungen übernehmen.


Aktualisieren:

Nicht speziell für Magento-Codierungsstandards, aber gute ...

  • Laufen phpcbfmit PSR2und MEQP2Standard
  • laufen phpcs -smit beiden standards
  • Lauf phpmd -s
  • Lauf phpstan -l 7
    • für magento 2.2 muss die version verwendet werden 0.8.5

-s Option ist die Anzeige des Sniff-Namens. Verwenden Sie FUL, wenn Sie Warnungen unterdrücken möchten

Für nette Berichte würde ich phpdox vorschlagen . Es aggregiert Daten von ...

  • phploc
  • phpcs
  • phpmd
  • phpunit Code-Abdeckung
  • Git-Log
  • ...

Beispiel (ohne Codeabdeckung): http://phpdox.de/demo/PHPUnit/index.xhtml

Andere Werkzeuge:

sv3n
quelle
Vielen Dank an sv3n. Irgendein Tool zur Sicherheitskontrolle?
Rama Chandran M
1
Zur Sicherheit habe ich kein Werkzeug. Ich denke, das Befolgen von Codierungsstandards (Vermeiden von unformatierten Abfragen usw.) ist ein erster guter Schritt.
SV3N
2

Um Schwachstellen der M2-Anwendung zu überprüfen, können wir Folgendes verwenden:

ZAP(Zed Attack Proxy).
Bhavani
quelle