¿Cuáles son todas las herramientas disponibles para verificar el estándar de codificación Magento 2?

14

Actualmente estoy trabajando en el proyecto de verificación estándar de codificación Magento 2.

¿Hay alguna otra herramienta disponible, aparte de PHP_CodeSniffer , para verificar el estado de codificación de Magento 2 y PHP?

Rama Chandran M
fuente

Respuestas:

9

Magento 2 utiliza el estándar de codificación ECGM2

Puedes descargarlo desde aquí

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

ECG Magento Code Sniffer Coding Standard es un conjunto de reglas y olfateadores para la herramienta PHP_CodeSniffer .

Permite verificar automáticamente su código contra algunos de los problemas comunes de codificación de Magento y PHP, como:

  1. consultas SQL sin procesar; Consultas SQL dentro de un bucle;
  2. instanciación directa de las clases Mage y Enterprise;
  3. carga innecesaria de la colección;
  4. excesiva complejidad del código;
  5. uso de funciones peligrosas; uso de PHP Superglobals;

y muchos otros.

  1. Ecg para Magento
  2. EcgM2 para Magento 2

Tanto Magento como Magento 2 son compatibles.

Príncipe Patel
fuente
¿Esta herramienta es para extensión para la verificación completa del código de Magento 2?
Rama Chandran M
Puede verificar el módulo Magento 2 con este comando después de la instalación de ECGM2 "phpcs --standard = EcgM2 / path / to / module"
Prince Patel
Claro Patel Cualquier otra herramienta disponible para agregar en los comentarios.
Rama Chandran M
¿Debo saber la necesidad de validación del W3C para la validación del código de Magento 2?
Rama Chandran M
La validación del W3C es para la presentación de la página web de Magento, no para el estándar de codificación. Magento usa solo ECG para Magento 1 y 2 para verificar el estándar de codificación de extensión.
Príncipe Patel
12

Magento 2 utiliza el estándar de codificación ECGM2:

  1. Instalar estándar de codificación:

    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 obtiene un error:

    Error fatal de PHP: no detectado PHP_CodeSniffer_Exception: el sniff referenciado "MEQP1.Exceptions.Namespace" no existe

    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. Prueba tu extensión M2:

    Para corregir errores automáticamente use phpcbf:

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

    Para ver archivo

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

    Para verificar errores / advertencias:

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

    Para ver archivo

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

    Solución para algunas advertencias disponibles aquí:

    ¿Cómo corregir las advertencias / errores generados por el informe de revisión técnica de Magento Marketplace?

  3. Revisión técnica del mercado:

    vendor/bin/phpcs /path/to/your/extension --standard=MEQP2 --severity=10
  4. Validar la extensión de Magento 2:

    Descargue "validate_m2_package.php" de https://gist.github.com/alankent/fcf280dd9c599921b71d#file-validate_m2_package_v2-php y póngalo en la raíz de magento:

    cd <path-to-magento2>
    php validate_m2_package.php Vendor_Module.zip
Charvi Parikh
fuente
Antes de ejecutar composer require magento/marketplace-eqpsolucionarlo con esto composer config repositories.magento-eqp git https://github.com/magento/marketplace-eqp. github.com/magento/marketplace-eqp/issues/2
oscuro
8

Además de Prince Patels responde ...

Magento 2 también utiliza el estándar de codificación PSR-2 , por lo que también puede ejecutarlo phpcs --standard=PSR2 /path/to/module. Para corregir los "errores" de PSR-2, puede usar " PHP Code Beautifier and Fixer (phpcbf) "

Para mí esto funciona muy bien ...

  • corrige el error de PSR2 automáticamente
  • crear informes
  • fusionar informes en un archivo

Comandos:

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 lo usa git, puede agregar un pre-commit enlace para ejecutar phpcs/ phpcbfautomáticamente antes de confirmar sus cambios.


Actualizar:

No especialmente para los estándares de codificación de magento, pero es una buena práctica ...

  • correr phpcbfcon PSR2y MEQP2estándar
  • correr phpcs -scon ambos estándares
  • correr phpmd -s
  • correr phpstan -l 7
    • para magento 2.2 tienes que usar la versión 0.8.5

-s la opción es mostrar el nombre de olfateo ... tal vez use ful si desea suprimir las advertencias

Para buenos informes sugeriría phpdox . Agrega datos de ...

  • phploc
  • phpcs
  • phpmd
  • phpunit cobertura de código
  • registro de git
  • ...

Muestra (sin cobertura de código): http://phpdox.de/demo/PHPUnit/index.xhtml

Otras herramientas:

sv3n
fuente
Gracias @ sv3n. ¿Alguna herramienta para verificar la seguridad?
Rama Chandran M
1
Por seguro no tengo herramientas. Creo que seguir los estándares de codificación (evitar consultas crudas, etc.) es un primer buen paso.
sv3n
2

Para validar vulnerabilidades de la aplicación M2, podemos usar:

ZAP(Zed Attack Proxy).
Bhavani
fuente