Quels sont tous les outils disponibles pour vérifier la norme de codage Magento 2?


Réponses:


9

Magento 2 utilise la norme de codage ECGM2

Vous pouvez télécharger ici

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

ECG Magento Code Sniffer Coding Standard est un ensemble de règles et renifle pour l' outil PHP_CodeSniffer .

Il permet de vérifier automatiquement votre code par rapport à certains des problèmes courants de codage Magento et PHP, tels que:

  1. requêtes SQL brutes; Requêtes SQL à l'intérieur d'une boucle;
  2. instanciation directe des classes Mage et Enterprise;
  3. chargement inutile de la collection;
  4. complexité excessive du code;
  5. utilisation de fonctions dangereuses; utilisation de PHP Superglobals;

et plein d'autres.

  1. ECG pour Magento
  2. EcgM2 pour Magento 2

Magento et Magento 2 sont pris en charge.


Cet outil est pour l'extension pour toute la vérification du code Magento 2?
Rama Chandran M

Vous pouvez vérifier le module Magento 2 par cette commande après l'installation d'ECGM2 "phpcs --standard = EcgM2 / path / to / module"
Prince Patel

Bien sûr Patel. Tout autre outil disponible pour ajouter des commentaires.
Rama Chandran M

Dois-je connaître le besoin de validation W3C pour la validation du code Magento 2?
Rama Chandran M

La validation W3C concerne la présentation de page Web Magento, pas la norme de codage. Magento utilise uniquement l'ECG pour Magento 1 et 2 pour vérifier la norme de codage d'extension.
Prince Patel

12

Magento 2 utilise la norme de codage ECGM2:

  1. Installez la norme de codage:

    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

    Si vous obtenez une erreur:

    Erreur fatale PHP: Uncaught PHP_CodeSniffer_Exception: sniff référencé "MEQP1.Exceptions.Namespace" n'existe pas

    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. Testez votre extension M2:

    Pour corriger automatiquement les erreurs, utilisez phpcbf:

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

    Pour afficher le fichier

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

    Pour vérifier les erreurs / avertissements:

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

    Pour afficher le fichier

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

    Solution pour certains avertissements disponible ici:

    Comment corriger les avertissements / erreurs soulevés par le rapport d'examen technique de Magento Marketplace?

  3. Revue technique du marché:

    vendor/bin/phpcs /path/to/your/extension --standard=MEQP2 --severity=10
  4. Validez l'extension Magento 2:

    Téléchargez "validate_m2_package.php" depuis https://gist.github.com/alankent/fcf280dd9c599921b71d#file-validate_m2_package_v2-php et mettez-le à la racine de magento:

    cd <path-to-magento2>
    php validate_m2_package.php Vendor_Module.zip

Avant d'exécuter, composer require magento/marketplace-eqpcorrigez-le avec cela composer config repositories.magento-eqp git https://github.com/magento/marketplace-eqp. github.com/magento/marketplace-eqp/issues/2
obscur

8

En plus de Prince Patels réponse du ...

Magento 2 utilise également la norme de codage PSR-2 , vous pouvez donc également exécuter phpcs --standard=PSR2 /path/to/module. Pour corriger les "erreurs" du PSR-2, vous pouvez utiliser " PHP Code Beautifier and Fixer (phpcbf) "

Pour moi, cela fonctionne très bien ...

  • correction automatique de l'erreur PSR2
  • créer des rapports
  • fusionner des rapports dans un seul fichier

Commandes:

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

Si vous utilisez git, vous pouvez ajouter un pre-commit hook à exécuter phpcs/ phpcbfautomatiquement avant de valider vos modifications.


Mise à jour:

Pas spécialement pour les normes de codage magento, mais à mon humble avis ...

  • courir phpcbfavec PSR2et MEQP2standard
  • courir phpcs -savec les deux normes
  • courir phpmd -s
  • courir phpstan -l 7
    • pour magento 2.2, vous devez utiliser la version 0.8.5

-s l'option est d'afficher le nom de sniff ... peut-être utiliser ful si vous voulez supprimer les avertissements

Pour de bons rapports, je suggère phpdox . Il regroupe les données de ...

  • phploc
  • phpcs
  • phpmd
  • phpunit couverture de code
  • git log
  • ...

Exemple (sans couverture de code): http://phpdox.de/demo/PHPUnit/index.xhtml

Autres outils:


Merci @ sv3n. Un outil pour vérifier la sécurité?
Rama Chandran M

1
Pour la sécurité, je n'ai pas d'outils. Je pense que suivre les normes de codage (éviter les requêtes brutes, etc.) est une première bonne étape.
sv3n

2

Pour valider les vulnérabilités de l'application M2, nous pouvons utiliser:

ZAP(Zed Attack Proxy).
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.