ฉันกำลังทำงานเกี่ยวกับโครงการตรวจสอบมาตรฐานการเข้ารหัสของ Magento 2
มีเครื่องมืออื่นใดนอกเหนือจากPHP_CodeSnifferเพื่อตรวจสอบสถานะการเข้ารหัสของ Magento 2 และ PHP หรือไม่
ฉันกำลังทำงานเกี่ยวกับโครงการตรวจสอบมาตรฐานการเข้ารหัสของ Magento 2
มีเครื่องมืออื่นใดนอกเหนือจากPHP_CodeSnifferเพื่อตรวจสอบสถานะการเข้ารหัสของ Magento 2 และ PHP หรือไม่
คำตอบ:
Magento 2 ใช้มาตรฐานการเข้ารหัส ECGM2
คุณสามารถดาวน์โหลดได้จากที่นี่
ECG Magento Code Sniffer Coding Standard เป็นชุดของกฎและ sniffs สำหรับเครื่องมือPHP_CodeSniffer
อนุญาตให้ตรวจสอบรหัสของคุณโดยอัตโนมัติจากปัญหาการเข้ารหัส Magento และ PHP ทั่วไปบางอย่างเช่น:
และอื่น ๆ อีกมากมาย.
รองรับทั้ง Magento และ Magento 2
Magento 2 ใช้มาตรฐานการเข้ารหัส ECGM2:
ติดตั้งมาตรฐานการเข้ารหัส:
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 )
ทดสอบส่วนขยาย 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 ได้อย่างไร
การทบทวนทางเทคนิคของ Marketplace:
vendor/bin/phpcs /path/to/your/extension --standard=MEQP2 --severity=10
ตรวจสอบส่วนขยายของ 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
นอกจากคำตอบของPrince Patels ...
วีโอไอพี 2 ยังใช้ PSR-2phpcs --standard=PSR2 /path/to/module
มาตรฐานการเข้ารหัสเพื่อให้คุณยังสามารถเรียกใช้ สำหรับการแก้ไขข้อผิดพลาด "PSR-2" คุณสามารถใช้ " PHP Code Beautifier and Fixer (phpcbf) "
สำหรับฉันมันใช้งานได้ดีมาก ...
คำสั่ง:
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
0.8.5
-s
ตัวเลือกคือการแสดงชื่อสูดอากาศ ... อาจใช้ ful ถ้าคุณต้องการที่จะปราบปรามคำเตือน
สำหรับรายงานที่ดีผมขอแนะนำphpdox รวบรวมข้อมูลจาก ...
phploc
phpcs
phpmd
phpunit
รหัสครอบคลุมตัวอย่าง (ไม่มีรหัสครอบคลุม): http://phpdox.de/demo/PHPUnit/index.xhtml
เครื่องมืออื่น ๆ :
เพื่อตรวจสอบช่องโหว่ของแอปพลิเคชัน M2 เราสามารถใช้:
ZAP(Zed Attack Proxy).