Performant Static Analyzer สำหรับ PHP ซึ่งใช้งานง่ายมาก ช่วยให้คุณพบข้อผิดพลาดทั่วไปในรหัส PHP ของคุณ
วิธีที่ง่ายที่สุดในการติดตั้ง phanalist คือการใช้สคริปต์การติดตั้ง
curl --proto ' =https ' --tlsv1.2 -sSf https://raw.githubusercontent.com/denzyldick/phanalist/main/bin/init.sh | shมันจะดาวน์โหลดการปฏิบัติการสำหรับแพลตฟอร์มของคุณโดยอัตโนมัติ:
$ ~ /phanalist -V
phanalist 1.0.0นอกจากนี้ยังมีตัวเลือกการติดตั้งอื่น ๆ อีกมากมาย
ในการวิเคราะห์แหล่งที่มาโครงการของคุณคุณเพียงแค่เรียกใช้ phanalist :
~ /phanalist
ในการเรียกใช้ phanalist.yaml ครั้งแรกจะถูกสร้างขึ้นด้วยการกำหนดค่าเริ่มต้น และมันจะถูกนำกลับมาใช้ใหม่ในการวิ่งต่อไปนี้ทั้งหมด
นอกจากนี้ยังมีพารามิเตอร์เพิ่มเติมสองสามตัว:
config : พา ธ ไปยังไฟล์กำหนดค่า . ./phanalist.yaml เป็นค่าเริ่มต้นsrc : Path to Project Sources, ./src เป็นค่าเริ่มต้นoutput-format : รูปแบบที่ใช้ในการส่งออกผลลัพธ์ ตัวเลือกที่เป็นไปได้คือ text (ค่าเริ่มต้น), json และ sarifsummary-only : ผลผลิตเพียงจำนวนของการละเมิดที่พบสำหรับแต่ละกฎquiet : ระงับเอาต์พุตทั้งหมดตัวเลือกที่เป็นไปได้คือ:
enabled_rules มีรายการกฎที่จะใช้ กฎทั้งหมดจะถูกใช้หากรายการนี้ว่างเปล่าdisable_rules มีรายการกฎที่จะละเว้นrules เฉพาะกฎไฟล์กำหนดค่าเริ่มต้นคือ:
enabled_rules : []
disable_rules : []
rules :
E0007 :
check_constructor : true
max_parameters : 5
E0009 :
max_complexity : 10
E0010 :
max_paths : 200
E0012 :
include_namespaces :
- " App \ Service \ "
- " App \ Controller \ "
exclude_namespaces : []มีกฎต่อไปนี้:
| รหัส | ชื่อ | ตัวเลือกเริ่มต้น |
|---|---|---|
| E0000 | กฎตัวอย่าง | |
| E0001 | ตำแหน่งแท็กเปิด | |
| E0002 | จับที่ว่างเปล่า | |
| e0003 | ตัวดัดแปลงวิธีการ | |
| E0004 | ค่าคงที่ตัวพิมพ์ใหญ่ | |
| E0005 | ชื่อชั้นเรียนที่เป็นตัวพิมพ์ใหญ่ | |
| E0006 | ตัวดัดแปลงทรัพย์สิน | |
| E0007 | พารามิเตอร์วิธีการนับ | check_constructor: จริง, max_parameters: 5 |
| E0008 | ลายเซ็นประเภทกลับ | |
| e0009 | ความซับซ้อนของวัฏจักร | max_complexity: 10 |
| e0010 | ความซับซ้อนของ npath | max_complexity: 200 |
| E0011 | ตรวจจับข้อผิดพลาดสัญลักษณ์ Supression (@) | |
| E0012 | ความเข้ากันได้ของบริการกับโมเดลหน่วยความจำที่ใช้ร่วมกัน | include_namespaces: ["app service "] exclude_namespaces: [], Reset_interfaces: ["ResetInterface"] |
| E0013 | ไม่ได้ใช้วิธีการส่วนตัว |
การเพิ่มกฎใหม่เป็นงานง่าย ๆ และบทช่วยสอนนี้อธิบายวิธีการทำ
อ่านชุดของบทที่ https://dev.to/denzyldick เพื่อทำความเข้าใจภายในของโครงการ มันเป็นการแนะนำที่ยอดเยี่ยมและอ่านง่ายสำหรับโครงการนี้