Jakie są wszystkie dostępne narzędzia do sprawdzania standardu kodowania Magento 2?

14

Obecnie pracuję nad projektem sprawdzania standardu kodowania Magento 2.

Czy dostępne jest inne narzędzie, oprócz PHP_CodeSniffer , do sprawdzania Magento 2 i kodowania PHP na stojąco?

Rama Chandran M.
źródło

Odpowiedzi:

9

Magento 2 wykorzystuje standard kodowania ECGM2

Możesz pobrać stąd

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

ECG Magento Code Sniffer Coding Standard to zestaw reguł i sniffów dla narzędzia PHP_CodeSniffer .

Umożliwia automatyczne sprawdzenie kodu pod kątem niektórych typowych problemów z kodowaniem Magento i PHP, takich jak:

  1. surowe zapytania SQL; Zapytania SQL wewnątrz pętli;
  2. bezpośrednia instancja klas Mage i Enterprise;
  3. niepotrzebne ładowanie kolekcji;
  4. nadmierna złożoność kodu;
  5. stosowanie niebezpiecznych funkcji; wykorzystanie PHP Superglobals;

i wiele innych.

  1. EKG dla Magento
  2. EcgM2 dla Magento 2

Obsługiwane są zarówno Magento, jak i Magento 2.

Książę Patel
źródło
To narzędzie służy do rozszerzenia całego sprawdzania kodu Magento 2?
Rama Chandran M
Możesz sprawdzić moduł Magento 2 za pomocą tego polecenia po instalacji ECGM2 „phpcs - standard = EcgM2 / ścieżka / do / modułu”
Prince Patel
Sure Patel. Wszelkie inne dostępne narzędzia prosimy dodawać w komentarzach.
Rama Chandran M
Czy powinienem wiedzieć, że walidacja W3C wymaga weryfikacji kodu Magento 2?
Rama Chandran M
Walidacja W3C dotyczy prezentacji strony Magento, a nie standard kodowania. Magento używa tylko EKG zarówno dla Magento 1, jak i 2 do sprawdzania standardu kodowania rozszerzenia.
Prince Patel,
12

Magento 2 wykorzystuje standard kodowania ECGM2:

  1. Zainstaluj 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

    Jeśli pojawi się błąd:

    Błąd krytyczny PHP: Uncaught PHP_CodeSniffer_Exception: Referenced sniff „MEQP1.Exceptions.Namespace” nie istnieje

    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. Przetestuj swoje rozszerzenie M2:

    Aby automatycznie poprawić błędy, użyj phpcbf:

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

    Aby wyświetlić plik

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

    Aby sprawdzić błąd / ostrzeżenia:

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

    Aby wyświetlić plik

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

    Rozwiązanie niektórych ostrzeżeń dostępnych tutaj:

    Jak naprawić ostrzeżenia / błędy zgłaszane przez raport z przeglądu technicznego Magento Marketplace?

  3. Przegląd techniczny rynku:

    vendor/bin/phpcs /path/to/your/extension --standard=MEQP2 --severity=10
  4. Zatwierdź rozszerzenie Magento 2:

    Pobierz „validate_m2_package.php” ze strony https://gist.github.com/alankent/fcf280dd9c599921b71d#file-validate_m2_package_v2-php i umieść go w katalogu głównym Magento:

    cd <path-to-magento2>
    php validate_m2_package.php Vendor_Module.zip
Charvi Parikh
źródło
Przed uruchomieniem composer require magento/marketplace-eqpnapraw to composer config repositories.magento-eqp git https://github.com/magento/marketplace-eqp. github.com/magento/marketplace-eqp/issues/2
niejasny
8

Oprócz odpowiedzi Prince Patels ...

Magento 2 używa również standardu kodowania PSR-2 , więc możesz także uruchamiać phpcs --standard=PSR2 /path/to/module. Aby naprawić błędy „PSR-2” PSR-2, możesz użyć „ Beautifier and Fixer PHP Code (phpcbf)

Dla mnie to działa bardzo dobrze ...

  • napraw błąd PSR2 automatycznie
  • tworzyć raporty
  • Scal raporty w jeden plik

Polecenia:

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

Jeśli używasz git, możesz dodać pre-commit zaczep, aby uruchomić phpcs/ phpcbfautomatycznie przed zatwierdzeniem zmian.


Aktualizacja:

Nie specjalnie dla standardów kodowania Magento, ale dobra praktyka imho ...

  • działa phpcbfz PSR2i MEQP2standard
  • działać phpcs -sz obu standardów
  • biegać phpmd -s
  • biegać phpstan -l 7
    • dla magento 2.2 musisz użyć wersji 0.8.5

-s opcją jest wyświetlenie nazwy wąchania ... może użyć ful, jeśli chcesz ukryć ostrzeżenia

Dla miłych raportów sugerowałbym phpdox . Agreguje dane z ...

  • phploc
  • phpcs
  • phpmd
  • phpunit Pokrycie kodu
  • git log
  • ...

Przykład (bez pokrycia kodu): http://phpdox.de/demo/PHPUnit/index.xhtml

Inne narzędzia:

sv3n
źródło
Dzięki @ sv3n. Jakieś narzędzie do kontroli bezpieczeństwa?
Rama Chandran M
1
Dla bezpieczeństwa nie mam narzędzi. Myślę, że przestrzeganie standardów kodowania (unikanie surowych zapytań itd.) To pierwszy dobry krok.
sv3n
2

Aby zweryfikować luki w zabezpieczeniach aplikacji M2, możemy użyć:

ZAP(Zed Attack Proxy).
Bhavani
źródło