Quali sono tutti gli strumenti disponibili per verificare lo standard di codifica Magento 2?


Risposte:


9

Magento 2 utilizza lo standard di codifica ECGM2

Puoi scaricare da qui

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

ECG Magento Code Sniffer Coding Standard è un insieme di regole e sniffer per lo strumento PHP_CodeSniffer .

Permette di controllare automaticamente il tuo codice rispetto ad alcuni dei comuni problemi di codifica Magento e PHP, come:

  1. query SQL non elaborate; Query SQL all'interno di un ciclo;
  2. istanziazione diretta delle classi Mage ed Enterprise;
  3. caricamento non necessario della raccolta;
  4. eccessiva complessità del codice;
  5. uso di funzioni pericolose; utilizzo di PHP Superglobals;

e molti altri.

  1. Ecg per Magento
  2. EcgM2 per Magento 2

Sono supportati sia Magento che Magento 2.


Questo strumento è per l'estensione per l'intero controllo del codice Magento 2?
Rama Chandran M

È possibile controllare il modulo Magento 2 con questo comando dopo l'installazione ECGM2 "phpcs --standard = EcgM2 / path / to / module"
Prince Patel

Sicuro Patel. Qualsiasi altro strumento disponibile per si prega di aggiungere commenti.
Rama Chandran M

Conosco la necessità di convalida W3C per la convalida del codice Magento 2?
Rama Chandran M

La convalida W3C è per la presentazione di pagine Web Magento, non per lo standard di codifica. Magento utilizza solo ECG sia per Magento 1 che per 2 per verificare lo standard di codifica delle estensioni.
Prince Patel,

12

Magento 2 utilizza lo standard di codifica ECGM2:

  1. Installa standard di codifica:

    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 ricevi un errore:

    Errore irreversibile di PHP: PHP_CodeSniffer_Exception non rilevato: lo sniff di riferimento "MEQP1.Exceptions.Namespace" non esiste

    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. Prova la tua estensione M2:

    Per correggere automaticamente gli errori utilizzare phpcbf:

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

    Per Visualizza file

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

    Per verificare errori / avvisi:

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

    Per Visualizza file

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

    Soluzione per alcuni avvisi disponibile qui:

    Come correggere gli avvisi / errori generati dal rapporto di revisione tecnica del mercato Magento?

  3. Revisione tecnica del marketplace:

    vendor/bin/phpcs /path/to/your/extension --standard=MEQP2 --severity=10
  4. Convalida estensione Magento 2:

    Scarica "validate_m2_package.php" da https://gist.github.com/alankent/fcf280dd9c599921b71d#file-validate_m2_package_v2-php e mettilo alla radice di Magento:

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

Prima di eseguire composer require magento/marketplace-eqprisolverlo con questo composer config repositories.magento-eqp git https://github.com/magento/marketplace-eqp. github.com/magento/marketplace-eqp/issues/2
oscuro

8

Oltre alla risposta di Prince Patels ...

Magento 2 utilizza anche lo standard di codifica PSR-2 , quindi puoi anche eseguirlo phpcs --standard=PSR2 /path/to/module. Per correggere gli "errori" PSR-2 puoi usare " Codice bellezza e riparatore codice PHP (phpcbf) "

Per me funziona molto bene ...

  • correggi automaticamente l'errore PSR2
  • creare report
  • unire i report in un unico file

comandi:

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 lo usi git, puoi aggiungere un pre-commit hook da eseguire phpcs/ phpcbfautomaticamente prima di eseguire le modifiche.


Aggiornare:

Non in particolare per gli standard di codifica magento, ma le buone pratiche imho ...

  • funziona phpcbfcon PSR2e MEQP2standard
  • funziona phpcs -scon entrambi gli standard
  • correre phpmd -s
  • correre phpstan -l 7
    • per magento 2.2 devi usare la versione 0.8.5

-s l'opzione è quella di visualizzare il nome dell'annusatore ... forse usare ful se si desidera sopprimere gli avvisi

Per belle notizie suggerirei phpdox . Aggrega i dati da ...

  • phploc
  • phpcs
  • phpmd
  • phpunit copertura del codice
  • log git
  • ...

Esempio (senza copertura del codice): http://phpdox.de/demo/PHPUnit/index.xhtml

Altri strumenti:


Grazie @ sv3n. Qualche strumento per verificare la sicurezza?
Rama Chandran M,

1
Per sicurezza non ho strumenti. Penso che seguire gli standard di codifica (evitare query non elaborate e così via) sia un primo buon passo.
sv3n,

2

Per convalidare le vulnerabilità dell'applicazione M2, possiamo usare:

ZAP(Zed Attack Proxy).
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.