มาตรฐานการเข้ารหัส: สิ่งที่ต้องดมกลิ่น
เผยแพร่แล้ว: 2021-07-19คำถามบางข้อเกิดขึ้นตราบใดที่การพัฒนาซอฟต์แวร์ ฉันควรเยื้องด้วยแท็บหรือเว้นวรรคหรือไม่ มาตรฐานการเข้ารหัสมีความสำคัญจริงหรือ? ฉันต้องเสียเวลาทำตามกฎเกณฑ์ใดๆ หรือไม่?
ตามลำดับ คำตอบสำหรับคำถามเหล่านี้คือ: แท็บ (ชัดเจน) ใช่ (ไม่ชัดเจน) และ ไม่ใช่ (ประเภท)

ความสำคัญของมาตรฐานครอบคลุมโดยผู้อื่นในระยะเวลาอันยาวนาน ดังนั้นฉันจะไม่ลงรายละเอียดในที่นี้ แต่ประเด็นสำคัญคือ: ความสอดคล้องภายในเป็นสิ่งที่พึงปรารถนาภายในโปรเจ็กต์ที่กำหนด เพราะมันช่วยเพิ่มความสามารถในการอ่าน จำกัดความประหลาดใจ และสามารถนำไปสู่ ความทนทานของรหัส
คุณไม่จำเป็นต้อง “เสียเวลา” ในการยึดติดกับมาตรฐาน เพราะมีหลายวิธีที่จะนำมาตรฐานเหล่านั้นไปใช้โดยอัตโนมัติ!
สิ่งที่ฉันจะกล่าวถึงในที่นี้คือวิธีการตั้งค่าเครื่องมือแบบสแตนด์อโลน PHP Codesniffer (PHPCS) สำหรับโครงการ WordPress อย่างรวดเร็วและง่ายดาย สิ่งนี้จะช่วยให้คุณ:
- สร้างรายงานการปฏิบัติตามมาตรฐานในรหัสของคุณ
- แก้ไขปัญหาการปฏิบัติตามข้อกำหนดที่หลากหลายโดยอัตโนมัติ
เราจะนำมาตรฐาน WordPress ไปใช้ในตัวอย่างต่อไปนี้
กำลังติดตั้ง
ข้อกำหนดเบื้องต้น:
- การเข้าถึงเทอร์มินัล (ผู้ใช้ Windows อาจประสบความสำเร็จกับ Bash สำหรับ Windows แต่ยังไม่ผ่านการทดสอบ)
- ผู้จัดการแพ็คเกจนักแต่งเพลง
แม้ว่าจะสามารถติดตั้ง PHPCS ได้ด้วยตัวเอง แต่ก็ไม่สนับสนุน WordPress ตามค่าเริ่มต้น สำหรับสิ่งนั้น เราจะติดตั้ง WordPress Coding Standards (WPCS) ที่ ชื่อว่า WordPress
ขั้นแรก นำทางไปยังทุกที่ที่คุณต้องการติดตั้ง WPCS สำหรับการใช้งานทั่วโลก
$ > cd /path/to/whereever
ติดตั้งแพ็คเกจด้วยผู้แต่ง
$ > นักแต่งเพลง create-project wp-coding-standards/wpcs --no-dev
ณ จุดนี้ เราสามารถดำดิ่งและเริ่มใช้ WPCS ได้ แต่มีการตั้งค่าสถานะบางอย่างในแต่ละครั้งที่เราเรียกใช้คำสั่ง มาสร้างนามแฝงสองสามตัวเพื่อความสะดวก
เปิด . profile จากโฮมไดเร็กทอรีของคุณในเอดิเตอร์ที่คุณชื่นชอบ (หรือสร้างมันขึ้นมาหากไม่มีอยู่) และเพิ่มสิ่งต่อไปนี้:
# มาตรฐานการเข้ารหัส WP ส่งออก PATH=$PATH:"/path/to/wherever/wpcs/vendor/bin" นามแฝง wpcs='phpcs --standard=WordPress --extensions=php นามแฝง wpcbf='phpcbf --standard=WordPress --extensions=php
เราได้เพิ่มนามแฝงสองชื่อไว้ที่นี่ – หนึ่งชื่อสำหรับ phpcs (ซึ่งค้นหาและแสดงความล้มเหลวในการปฏิบัติตามข้อกำหนด) และอีกหนึ่งชื่อสำหรับ phpcbf (ซึ่งแก้ไขปัญหาต่างๆ ที่พบโดย phpcs โดยอัตโนมัติ) ตัวเลือกเพิ่มเติมทำดังต่อไปนี้:
–standard=WordPress – ใช้มาตรฐาน WordPress (ตั้งค่าเป็น WPCS)
–extensions=php – กำหนดเป้าหมายไฟล์ PHP เท่านั้น (PHPCS กำหนดเป้าหมายเป็น PHP, CSS และ JS โดยค่าเริ่มต้น)
รีสตาร์เทอร์มิ (หรือ .profile แหล่งที่มา) และ WPCS พร้อมที่จะสูดอากาศรหัสของคุณ!
ดมกลิ่น
ในการสร้างรายงานการดมกลิ่นในไฟล์ ให้เรียกใช้สิ่งต่อไปนี้:
$ > wpcs /path/to/your/php/project/file.phpสิ่งนี้จะส่งออกรายงานในเทอร์มินัล อีกวิธีหนึ่ง คุณสามารถส่งออกสิ่งนี้ไปยังไฟล์:
$ > wpcs /path/to/your/php/project/file.php > output.txt
รายงานการดมกลิ่น
เอาต์พุตดมกลิ่น WPCS ของคุณจะเป็นดังนี้:


มีข้อมูลจำนวนพอสมควรบรรจุอยู่ที่นี่ แต่มีการจัดวางค่อนข้างชัดเจน มาทบทวนสิ่งที่เรามีกันเถอะ:
- ไฟล์เป้าหมาย
- สรุปจำนวนข้อผิดพลาด/คำเตือนที่พบ และจำนวนบรรทัดที่ได้รับผลกระทบ
- รายการปัญหาที่พบ พร้อมระดับความรุนแรงและคำอธิบาย
- การบ่งชี้จำนวนปัญหาที่ phpcbf สามารถแก้ไขได้โดยอัตโนมัติ (โดยทั่วไป ปัญหาทั้งหมดที่มี [x])
ตามที่คาดไว้ PHPCS ไม่สามารถอธิบายได้ทุกอย่าง จะไม่ตั้งสมมติฐานเกี่ยวกับการเลือกเครื่องหมายวรรคตอนในความคิดเห็นและการจัดรูปแบบโค้ดบางประเภท แต่สามารถจัดการกับปัญหาที่หลากหลายสำหรับคุณ
โบนัสที่ดีคือกฎของ WordPress อนุญาตให้ PHPCS ตรวจพบปัญหาเฉพาะของ WordPress รวมถึงการใช้ฟังก์ชันในทางที่ผิด
ซ่อม
การแก้ไขปัญหาโดยอัตโนมัติไม่ใช่เรื่องง่าย:
$ > wpcbf /path/to/your/php/project/file.php
เอาต์พุตสรุปสั้น ๆ :

ข้อผิดพลาดที่เหลือจะต้องได้รับการแก้ไขด้วยตนเอง แต่โดยปกติคุณจะพบว่าปัญหาจำนวนมากได้รับการจัดการแล้ว
กฎที่กำหนดเอง
คุณอาจต้องการปรับแต่งชุดกฎ ยกเว้นบางไดเร็กทอรีในโปรเจ็กต์ของคุณ และอื่นๆ PHPCS ข้อเขียนเอกสาร ruleset ให้ตัวอย่างของการเปลี่ยนแปลงทั้งหมดที่คุณสามารถทำ แต่พูดกว้างคุณเพียงแค่:
- สร้างไฟล์ชุดกฎ
- อ้างอิงในคำสั่ง PHPCS
นี่คือตัวอย่างของไฟล์ชุดกฎ:
<?xml version="1.0"?>
<ruleset name="WordPress Coding Standards">
<description>ปรับแต่งมาตรฐาน WordPress</description>
<rule ref="WordPress">
<exclude name="Generic.Formatting.MultipleStatementAlignment.NotSameWarning"/>
</rule>
<exclude-pattern>*/bin/*</exclude-pattern>
<exclude-pattern>*/node_modules/*</exclude-pattern>
<exclude-pattern>*/tests/*</exclude-pattern>
</ruleset>ในตัวอย่าง เราได้ทำสิ่งต่อไปนี้:
- อ้างอิงชุดกฎ WordPress (จาก WPCS)
- ไม่รวมกฎ
- ไม่รวมบางไดเร็กทอรี
ไฟล์ชุดกฎสามารถวางในไดเร็กทอรีใดก็ตามที่คุณเรียกใช้ WPCS (โดยปกติแล้ว โปรเจ็กต์ ธีม หรือปลั๊กอินจะใช้งานได้) และอ้างอิงผ่านแฟล็ก อัปเดตแฟ ล็ก –standard ใน . profile ของคุณ เช่น:
# มาตรฐานการเข้ารหัส WP ส่งออก PATH=$PATH:"/path/to/wherever/wpcs/vendor/bin" นามแฝง wpcs='phpcs --standard=codesniffer.ruleset.xml --extensions=php นามแฝง wpcbf='phpcbf --standard=codesniffer.ruleset.xml --extensions=php
ในการตรวจสอบว่ากฎใดถูกตั้งค่าสถานะเมื่อคุณเรียกใช้ WPCS เพียงเรียกใช้ด้วยแฟล็ก -s ดังนี้:
$ > wpcs -s /path/to/your/php/project/file.php
อะไรต่อไป?
คำแนะนำข้างต้นจะช่วยให้คุณดำเนินการตรวจสอบการปฏิบัติตามมาตรฐานเฉพาะกิจในโครงการ WordPress ของคุณได้ แต่ถ้าคุณต้องการรวมเข้ากับวงจรการพัฒนามาตรฐานของคุณ ขั้นตอนต่อไปคือการทำงานอัตโนมัติ
พิจารณารวม PHPCS เข้าใน task runner เช่น gulp หรือ grunt (โมดูล PHPCS มีให้สำหรับทั้งคู่) หรือรวมเข้ากับไพพ์ไลน์บิลด์ CI/CD ของคุณ
หากต้องการความช่วยเหลือในการพัฒนาและออกแบบเว็บ โปรดติดต่อเราวันนี้
หากคุณต้องการความช่วยเหลือ อย่าลังเลที่จะติดต่อเรา
