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

14

Je travaille actuellement sur le projet de vérification de la norme de codage Magento 2.

Existe-t-il un autre outil, autre que PHP_CodeSniffer , pour vérifier la position du codage Magento 2 et PHP?

Rama Chandran M
la source

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.

Prince Patel
la source
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
Charvi Parikh
la source
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:

sv3n
la source
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).
Bhavani
la source