การดมกลิ่นของรหัส PHP ที่กำหนดเองเพื่อช่วยค้นหาคลาสที่ไม่สอดคล้องกับ Autoloader PSR-4

กรุณาเยี่ยมชม./tests/demo หากคุณต้องการลองสูดดมนี้
การดมกลิ่นนี้ไม่เพียง แต่ครอบคลุมคลาสเท่านั้น แต่ยังรวมถึงอินเทอร์เฟซและลักษณะ
การดมกลิ่นนี้ตรวจสอบว่าทั้งเนมสเปซและชื่อคลาสตรงกับโครงสร้างโครงการ PSR-4 หรือไม่
เนื่องจากการสูดดมนี้เคารพการกำหนดค่า composer.json autoloading autoloading คุณไม่จำเป็นต้องประกาศการแมประหว่างคำนำหน้าเนมสเปซและไดเรกทอรีพื้นฐาน
PSR4Fixer ตรวจสอบว่าชื่อคลาสควรตรงกับชื่อไฟล์และแก้ไขชื่อคลาสหากไม่สอดคล้องกับชื่อไฟล์ มันไม่ได้ตรวจสอบเนมสเปซ
ในทางตรงกันข้ามการตรวจสอบ SUIN/PHPCS-PSR4-SNIFF ไม่เพียง แต่ชื่อคลาส แต่ยังรวมถึงเนมสเปซด้วย
SlevomatCodingStandard.files.typenamematchesfilename เป็นรหัส PHP ที่กำหนดเองดมกลิ่นดมกลิ่นเพื่อตรวจสอบว่าเนมสเปซและชื่อคลาสเป็นไปตามโครงสร้างโครงการ PSR-0/PSR-4
การดมกลิ่นนี้คล้ายกับ SUIN/PHPCS-PSR4-SNIFF แต่ต้องการการกำหนดค่าที่ชัดเจนเกี่ยวกับโครงสร้างโครงการ PSR-0/PSR-4 SUIN/PHPCS-PSR4-SNIFF ใช้วิธีโดยนัยตามการกำหนดค่าการกำหนดค่าอัตโนมัติของนักแต่งเพลง
composer require --dev suin/phpcs-psr4-sniff
ในตอนแรกให้สร้างไฟล์ PHPCS Ruleset XML (phpcs.xml.dist หรือ phpcs.xml) ในรูทของโครงการของคุณ
<? xml version = " 1.0 " ?>
< ruleset name = " My Project " >
<!-- Specify directory that composer.json is placed. Usually it would be
project root directory. -->
< arg name = " basepath " value = " . " />
<!-- Relative path to your ruleset.xml -->
< rule ref = " vendor/suin/phpcs-psr4-sniff/src/Suin " />
<!-- Optional: If you have to specify composer.json path, please add
following section. -->
< rule ref = " Suin.Classes.PSR4 " >
< properties >
<!-- composerJsonPath must be relative path to "basepath" -->
< property name = " composerJsonPath " value = " sub-dir/composer.json " />
</ properties >
</ rule >
</ ruleset >จากนั้นเรียกใช้กับคำสั่ง:
vendor/bin/phpcs src
โปรดดู Changelog สำหรับรายละเอียดเพิ่มเติม
ส่งปัญหาหรือขอคำตอบไปยังที่เก็บหลัก