Apa saja alat yang tersedia untuk memeriksa standar pengkodean Magento 2?

Jawaban:

9

Magento 2 menggunakan standar pengkodean ECGM2

Anda dapat mengunduh dari sini

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

ECG Magento Code Sniffer Coding Standard adalah seperangkat aturan dan hirupan untuk alat PHP_CodeSniffer .

Itu memungkinkan secara otomatis memeriksa kode Anda terhadap beberapa masalah pengkodean Magento dan PHP yang umum, seperti:

  1. pertanyaan SQL mentah; SQL query di dalam sebuah loop;
  2. Instansiasi langsung kelas Mage dan Perusahaan;
  3. pemuatan koleksi yang tidak perlu;
  4. kompleksitas kode yang berlebihan;
  5. penggunaan fungsi berbahaya; penggunaan PHP Superglobals;

dan banyak lagi.

  1. EKG untuk Magento
  2. EcgM2 untuk Magento 2

Baik Magento dan Magento 2 didukung.

Pangeran Patel
sumber
Alat ini untuk ekstensi untuk seluruh pemeriksaan kode Magento 2?
Rama Chandran M
Anda dapat memeriksa modul Magento 2 dengan perintah ini setelah pemasangan ECGM2 "phpcs --standard = EcgM2 / path / to / module"
Prince Patel
Tentu Patel. Alat lain yang tersedia untuk silakan tambahkan komentar.
Rama Chandran M
Haruskah saya tahu kebutuhan validasi W3C untuk validasi kode Magento 2?
Rama Chandran M
Validasi W3C adalah untuk Presentasi Halaman Web Magento, Bukan untuk standar pengkodean. Magento hanya menggunakan EKG untuk Magento 1 dan 2 untuk memeriksa standar pengkodean ekstensi.
Pangeran Patel
12

Magento 2 menggunakan standar pengodean ECGM2:

  1. Instal Coding Standard:

    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

    Jika Anda mendapatkan kesalahan:

    PHP Fatal error: Uncaught PHP_CodeSniffer_Exception: Sniff yang direferensikan "MEQP1.Exceptions.Namespace" tidak ada

    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. Uji ekstensi M2 Anda:

    Untuk memperbaiki kesalahan secara otomatis, gunakan phpcbf:

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

    Untuk Lihat File

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

    Untuk Memeriksa Kesalahan / Peringatan:

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

    Untuk Lihat File

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

    Solusi untuk beberapa peringatan tersedia di sini:

    Bagaimana cara memperbaiki peringatan / kesalahan yang diajukan oleh laporan tinjauan teknis Magento Marketplace?

  3. Ulasan Teknis Marketplace:

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

    Unduh "validate_m2_package.php" dari https://gist.github.com/alankent/fcf280dd9c599921b71d#file-validate_m2_package_v2-php dan letakkan di root magento:

    cd <path-to-magento2>
    php validate_m2_package.php Vendor_Module.zip
Charvi Parikh
sumber
Sebelum menjalankan composer require magento/marketplace-eqpmemperbaikinya dengan ini composer config repositories.magento-eqp git https://github.com/magento/marketplace-eqp. github.com/magento/marketplace-eqp/issues/2
obscure
8

Selain jawaban Pangeran Patels ...

Magento 2 juga menggunakan standar pengkodean PSR-2 , sehingga Anda juga dapat menjalankannya phpcs --standard=PSR2 /path/to/module. Untuk memperbaiki "kesalahan" PSR-2 Anda dapat menggunakan " PHP Code Beautifier and Fixer (phpcbf) "

Bagi saya ini bekerja sangat baik ...

  • memperbaiki kesalahan PSR2 secara otomatis
  • buat laporan
  • gabungkan laporan menjadi satu file

Perintah:

phpcbf --standard=PSR2 ./app/
phpcs --report-gitblame=CS-blame --report-source=CS-code --report-full=CS-full ./app/
cat CS-* >> ECG-PSR2 ; rm CS-*

Jika Anda menggunakan git, Anda dapat menambahkan pre-commit hook untuk menjalankan phpcs/ phpcbfsecara otomatis sebelum melakukan perubahan Anda.


Memperbarui:

Tidak terutama untuk standar pengkodean magento, tetapi praktik yang baik ...

  • berjalan phpcbfdengan PSR2dan MEQP2standar
  • berjalan phpcs -sdengan kedua standar
  • Lari phpmd -s
  • Lari phpstan -l 7
    • untuk Magento 2.2 Anda harus menggunakan versi 0.8.5

-s opsi adalah untuk menampilkan nama sniff ... mungkin menggunakan ful jika Anda ingin menekan peringatan

Untuk laporan yang bagus saya sarankan phpdox . Ini mengumpulkan data dari ...

  • phploc
  • phpcs
  • phpmd
  • phpunit cakupan kode
  • log git
  • ...

Contoh (tanpa cakupan kode): http://phpdox.de/demo/PHPUnit/index.xhtml

Alat lainnya:

sv3n
sumber
Terima kasih @ sv3n. Ada alat untuk memeriksa keamanan?
Rama Chandran M
1
Untuk secuirty saya tidak punya alat. Saya pikir mengikuti standar pengkodean (menghindari permintaan mentah dan sebagainya) adalah langkah pertama yang baik.
sv3n
2

Untuk memvalidasi kerentanan aplikasi M2, kita dapat menggunakan:

ZAP(Zed Attack Proxy).
Bhavani
sumber