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


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.


¿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

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:


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).
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.