มีเครื่องมืออะไรบ้างสำหรับการตรวจสอบมาตรฐานการเข้ารหัสของ Magento 2


14

ฉันกำลังทำงานเกี่ยวกับโครงการตรวจสอบมาตรฐานการเข้ารหัสของ Magento 2

มีเครื่องมืออื่นใดนอกเหนือจากPHP_CodeSnifferเพื่อตรวจสอบสถานะการเข้ารหัสของ Magento 2 และ PHP หรือไม่

คำตอบ:


9

Magento 2 ใช้มาตรฐานการเข้ารหัส ECGM2

คุณสามารถดาวน์โหลดได้จากที่นี่

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

ECG Magento Code Sniffer Coding Standard เป็นชุดของกฎและ sniffs สำหรับเครื่องมือPHP_CodeSniffer

อนุญาตให้ตรวจสอบรหัสของคุณโดยอัตโนมัติจากปัญหาการเข้ารหัส Magento และ PHP ทั่วไปบางอย่างเช่น:

  1. แบบสอบถาม SQL ดิบ แบบสอบถาม SQL ภายในลูป;
  2. การสร้างอินสแตนซ์โดยตรงของคลาส Mage และ Enterprise
  3. การโหลดคอลเลกชันที่ไม่จำเป็น
  4. ความซับซ้อนของรหัสมากเกินไป
  5. การใช้ฟังก์ชั่นอันตราย การใช้ PHP Superglobals

และอื่น ๆ อีกมากมาย.

  1. Ecg สำหรับ Magento
  2. EcgM2 สำหรับ Magento 2

รองรับทั้ง Magento และ Magento 2


เครื่องมือนี้ใช้สำหรับการตรวจสอบรหัสวีโอไอพี 2 ทั้งหมดหรือไม่
Rama Chandran M

คุณสามารถตรวจสอบโมดูล Magento 2 โดยคำสั่งนี้หลังจากการติดตั้ง ECGM2 "phpcs --standard = EcgM2 / path / to / module"
เจ้าชาย Patel

แน่นอน Patel เครื่องมืออื่นใดที่มีให้สำหรับโปรดเพิ่มในความคิดเห็น
Rama Chandran M

ฉันจะรู้ได้อย่างไรว่าการตรวจสอบ W3C ต้องการการตรวจสอบรหัสวีโอไอพี 2 หรือไม่?
Rama Chandran

การตรวจสอบ W3C ใช้สำหรับการนำเสนอหน้าเว็บวีโอไอพีไม่ใช่สำหรับการเข้ารหัสมาตรฐาน Magento ใช้คลื่นไฟฟ้าหัวใจเท่านั้นสำหรับทั้ง Magento 1 และ 2 สำหรับตรวจสอบมาตรฐานการเข้ารหัสส่วนขยาย
เจ้าชาย Patel

12

Magento 2 ใช้มาตรฐานการเข้ารหัส ECGM2:

  1. ติดตั้งมาตรฐานการเข้ารหัส:

    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

    หากคุณได้รับข้อผิดพลาด:

    ข้อผิดพลาดร้ายแรงของ PHP: Uncaught PHP_CodeSniffer_Exception: sniff ที่อ้างถึง "MEQP1.Exceptions.Namespace"

    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. ทดสอบส่วนขยาย M2 ของคุณ:

    ในการแก้ไขข้อผิดพลาดโดยอัตโนมัติให้ใช้ phpcbf:

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

    สำหรับดูไฟล์

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

    วิธีตรวจสอบข้อผิดพลาด / คำเตือน:

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

    สำหรับดูไฟล์

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

    วิธีแก้ปัญหาสำหรับคำเตือนบางอย่างมีให้ที่นี่:

    จะแก้ไขคำเตือน / ข้อผิดพลาดที่เกิดจากรายงานการตรวจสอบทางเทคนิคของ Magento Marketplace ได้อย่างไร

  3. การทบทวนทางเทคนิคของ Marketplace:

    vendor/bin/phpcs /path/to/your/extension --standard=MEQP2 --severity=10
  4. ตรวจสอบส่วนขยายของ Magento 2:

    ดาวน์โหลด "validate_m2_package.php" จากhttps://gist.github.com/alankent/fcf280dd9c599921b71d#file-validate_m2_package_v2-phpและวางไว้บนรากของวีโอไอพี:

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

ก่อนที่จะใช้แก้ไขมันด้วยนี้composer require magento/marketplace-eqp github.com/magento/marketplace-eqp/issues/2composer config repositories.magento-eqp git https://github.com/magento/marketplace-eqp
ปิดบัง

8

นอกจากคำตอบของPrince Patels ...

วีโอไอพี 2 ยังใช้ PSR-2phpcs --standard=PSR2 /path/to/moduleมาตรฐานการเข้ารหัสเพื่อให้คุณยังสามารถเรียกใช้ สำหรับการแก้ไขข้อผิดพลาด "PSR-2" คุณสามารถใช้ " PHP Code Beautifier and Fixer (phpcbf) "

สำหรับฉันมันใช้งานได้ดีมาก ...

  • แก้ไขข้อผิดพลาด PSR2 โดยอัตโนมัติ
  • สร้างรายงาน
  • รวมรายงานเป็นหนึ่งไฟล์

คำสั่ง:

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

หากคุณใช้gitคุณสามารถเพิ่มpre-commit เบ็ดเพื่อเรียกใช้phpcs/ phpcbfโดยอัตโนมัติก่อนที่จะยอมรับการเปลี่ยนแปลงของคุณ


ปรับปรุง:

ไม่เหมาะสำหรับมาตรฐานการเข้ารหัสของวีโอไอพี แต่เป็นวิธีปฏิบัติที่ดี ...

  • ทำงานphpcbfด้วยPSR2และได้MEQP2มาตรฐาน
  • ทำงานphpcs -sด้วยมาตรฐานทั้งสอง
  • วิ่ง phpmd -s
  • วิ่ง phpstan -l 7
    • สำหรับ magento 2.2 คุณต้องใช้ version 0.8.5

-s ตัวเลือกคือการแสดงชื่อสูดอากาศ ... อาจใช้ ful ถ้าคุณต้องการที่จะปราบปรามคำเตือน

สำหรับรายงานที่ดีผมขอแนะนำphpdox รวบรวมข้อมูลจาก ...

  • phploc
  • phpcs
  • phpmd
  • phpunit รหัสครอบคลุม
  • บันทึกคอมไพล์
  • ...

ตัวอย่าง (ไม่มีรหัสครอบคลุม): http://phpdox.de/demo/PHPUnit/index.xhtml

เครื่องมืออื่น ๆ :


ขอบคุณ @ sv3n มีเครื่องมือสำหรับตรวจสอบความปลอดภัยหรือไม่?
Rama Chandran

1
เพื่อความปลอดภัยฉันไม่มีเครื่องมือ ฉันคิดว่าการปฏิบัติตามมาตรฐานการเข้ารหัส (หลีกเลี่ยงการสอบถามแบบดิบและอื่น ๆ ) เป็นขั้นตอนแรกที่ดี
sv3n

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.