Quais são todas as ferramentas disponíveis para verificar o padrão de codificação Magento 2?

14

Atualmente, estou trabalhando no projeto de verificação padrão de codificação Magento 2.

Existe alguma outra ferramenta disponível, além do PHP_CodeSniffer , para verificar a situação da codificação do Magento 2 e PHP?

Rama Chandran M
fonte

Respostas:

9

Magento 2 usa padrão de codificação ECGM2

Você pode baixar aqui

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

O padrão de codificação do sniffer de código do Magento do ECG é um conjunto de regras e sniff para a ferramenta PHP_CodeSniffer .

Permite verificar automaticamente seu código em relação a alguns dos problemas comuns de codificação Magento e PHP, como:

  1. consultas SQL brutas; Consultas SQL dentro de um loop;
  2. instanciação direta das classes Mage e Enterprise;
  3. carregamento desnecessário de coleções;
  4. excessiva complexidade de código;
  5. uso de funções perigosas; uso de PHP Superglobais;

e muitos outros.

  1. Ecg para Magento
  2. EcgM2 para Magento 2

Magento e Magento 2 são suportados.

Prince Patel
fonte
Esta ferramenta é para extensão de toda a verificação de código do Magento 2?
Rama Chandran M
Você pode verificar Magento módulo 2 por este comando após a instalação ECGM2 "phpcs --standard = EcgM2 / path / to / módulo"
Príncipe Patel
Patel. Qualquer outra ferramenta disponível para adicionar comentários.
Rama Chandran M
Devo saber a validação do W3C necessária para a validação do código Magento 2?
Rama Chandran M
A validação do W3C é para Magento Web Page Presentation, não para codificação padrão. O Magento usa apenas ECG para o Magento 1 e 2 para verificar o padrão de codificação de extensão.
Prince Patel
12

Magento 2 usa o padrão de codificação ECGM2:

  1. Instale o padrão de codificação:

    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

    Se você receber um erro:

    Erro fatal do PHP: Não detectado PHP_CodeSniffer_Exception: O sniff referido "MEQP1.Exceptions.Namespace" não 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. Teste sua extensão M2:

    Para corrigir automaticamente os erros, use phpcbf:

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

    Para o arquivo de exibição

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

    Para verificar erros / avisos:

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

    Para o arquivo de exibição

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

    Solução para alguns avisos disponíveis aqui:

    Como corrigir avisos / erros gerados pelo relatório de revisão técnica do Magento Marketplace?

  3. Revisão técnica do Marketplace:

    vendor/bin/phpcs /path/to/your/extension --standard=MEQP2 --severity=10
  4. Valide a extensão Magento 2:

    Faça o download de "validate_m2_package.php" em https://gist.github.com/alankent/fcf280dd9c599921b71d#file-validate_m2_package_v2-php e coloque-o na raiz do magento:

    cd <path-to-magento2>
    php validate_m2_package.php Vendor_Module.zip
Charvi Parikh
fonte
Antes de executar, composer require magento/marketplace-eqpcorrija-o com isso composer config repositories.magento-eqp git https://github.com/magento/marketplace-eqp. github.com/magento/marketplace-eqp/issues/2
obscuro
8

Além de Prince Patels responder ...

O Magento 2 também usa o padrão de codificação PSR-2 , para que você também possa executar phpcs --standard=PSR2 /path/to/module. Para corrigir "erros" do PSR-2, você pode usar " Embelezador e fixador de código PHP (phpcbf) "

Para mim, isso funciona muito bem ...

  • corrigir erro PSR2 automaticamente
  • criar relatórios
  • mesclar relatórios em um arquivo

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-*

Se você usar git, poderá adicionar um pre-commit gancho para executar phpcs/ phpcbfautomaticamente antes de confirmar suas alterações.


Atualizar:

Não espaccialmente para os padrões de codificação magento, mas ...

  • correr phpcbfcom PSR2eMEQP2 padrão
  • corre phpcs -s com os dois padrões
  • corre phpmd -s
  • corre phpstan -l 7
    • para magento 2.2 você tem que usar a versão 0.8.5

-s opção é exibir o nome do sniff ... talvez use ful se você quiser suprimir avisos

Para bons relatórios, sugiro o phpdox . Agrega dados de ...

  • phploc
  • phpcs
  • phpmd
  • phpunit Cobertura de código
  • log git
  • ...

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

Outras ferramentas:

sv3n
fonte
Obrigado @ sv3n. Alguma ferramenta para verificar a segurança?
Rama Chandran M
1
Por segurança, não tenho ferramentas. Acho que seguir os padrões de codificação (evitar consultas brutas e assim por diante) é o primeiro bom passo.
sv3n
2

Para validar vulnerabilidades do aplicativo M2, podemos usar:

ZAP(Zed Attack Proxy).
Bhavani
fonte