โครงการ Sonarsource นี้เป็นตัววิเคราะห์รหัสแบบคงที่สำหรับภาษา PHP ที่ใช้เป็นส่วนขยายสำหรับแพลตฟอร์ม Sonarqube มันจะช่วยให้คุณสามารถสร้างรหัสสะอาดที่มีเสถียรภาพและรองรับได้ง่ายโดยช่วยให้คุณค้นหาและแก้ไขข้อบกพร่องช่องโหว่และกลิ่นของรหัส
เพื่อให้ข้อเสนอแนะ (ขอคุณสมบัติรายงานข้อผิดพลาด ฯลฯ ) ใช้ฟอรัมชุมชน Sonarsource โปรดอย่าลืมระบุภาษา (php!) เวอร์ชันปลั๊กอินและเวอร์ชัน Sonarqube
หากคุณมีคำถามเกี่ยวกับวิธีการใช้ปลั๊กอิน (และเอกสารไม่ได้ช่วยคุณ) เราขอแนะนำให้คุณใช้ฟอรัมชุมชน
หากต้องการขอคุณสมบัติใหม่โปรดสร้างเธรดใหม่ในฟอรัมชุมชน Sonarsource แม้ว่าคุณจะวางแผนที่จะนำไปใช้ด้วยตัวเองและส่งกลับไปยังชุมชนโปรดเริ่มเธรดใหม่ก่อนเพื่อให้แน่ใจว่าเราสามารถติดตามได้
หากต้องการส่งเงินบริจาคให้สร้างคำขอดึงสำหรับที่เก็บนี้ โปรดตรวจสอบให้แน่ใจว่าคุณทำตามสไตล์รหัสของเราและการทดสอบทั้งหมดกำลังผ่านไป
หากคุณมีความคิดสำหรับกฎ แต่คุณไม่แน่ใจว่าทุกคนต้องการมันคุณสามารถใช้กฎที่กำหนดเองได้สำหรับคุณเท่านั้น
newIssue เพิ่มเติมในส่วนต่อประสาน CheckContext APIPHPCustomRulesDefinition ถูกลบออกไปแล้วมันถูกเลิกใช้ตั้งแต่เวอร์ชัน 2.13 (มีนาคม 2018)ParameterTree#type() เลิกใช้แล้ว ใช้ ParameterTree#declaredType() แทนReturnTypeClauseTree#type() เลิกใช้แล้ว ใช้ ReturnTypeClauseTree#declaredType() แทนClassPropertyDeclarationTree#typeAnnotation() เลิกใช้แล้ว ใช้ ClassPropertyDeclarationTree#declaredType() แทนCatchBlockTree#variable() สามารถส่งคืน NULL ได้FunctionCallTree#arguments() เลิกใช้แล้ว ใช้ FunctionCallTree#callArguments() แทนAnonymousClassTree#arguments() เลิกใช้แล้ว ใช้ AnonymousClassTree#callArguments() แทนCallArgumentTree ต้นไม้นี้ปิดการแสดงออกผ่านเป็นข้อโต้แย้งในขณะนี้ThrowExpressionTreeMatchExpressionTreeParameterTree มีวิธี visibilityเพื่อเรียกใช้การทดสอบตามคำแนะนำเหล่านี้
ในการสร้างปลั๊กอินและเรียกใช้การทดสอบหน่วยให้ดำเนินการคำสั่งนี้จากไดเรกทอรีรูทของโครงการ:
./gradlew build ในการเรียกใช้การทดสอบการรวมคุณจะต้องสร้างไฟล์คุณสมบัติเช่นเดียวกับที่แสดงด้านล่างและตั้งค่าตำแหน่งในตัวแปรสภาพแวดล้อมชื่อ ORCHESTRATOR_CONFIG_URL
# version of SonarQube server
sonar.runtimeVersion =9.9ก่อนที่จะทำการทดสอบการรวมใด ๆ ให้แน่ใจว่ามีการตรวจสอบ submodules:
git submodule update --init"การทดสอบปลั๊กอิน" เป็นการทดสอบการรวมเพิ่มเติมที่ตรวจสอบคุณสมบัติของปลั๊กอินเช่นการคำนวณตัวชี้วัดความครอบคลุม ฯลฯ เพื่อเปิดตัว:
./gradlew its:plugin:integrationTest"การทดสอบการปกครอง" เป็นการทดสอบการรวมแบบพิเศษที่เปิดการวิเคราะห์ฐานรหัสขนาดใหญ่บันทึกปัญหาที่สร้างขึ้นโดยปลั๊กอินในไฟล์รายงานจากนั้นเปรียบเทียบผลลัพธ์เหล่านั้นกับชุดของปัญหาที่คาดหวัง (เก็บเป็นไฟล์ JSON) เพื่อเปิดการทดสอบการปกครอง:
./gradlew its:ruling:integrationTestการทดสอบนี้เปิดโอกาสให้คุณตรวจสอบปัญหาที่สร้างขึ้นโดยแต่ละกฎและตรวจสอบให้แน่ใจว่าพวกเขาเป็นสิ่งที่คุณคาดหวัง คุณสามารถตรวจสอบปัญหาใหม่/หายไปได้โดยการตรวจสอบ URL ท้องถิ่นของ Sonarqube ที่กล่าวถึงในบันทึกเมื่อสิ้นสุดการวิเคราะห์ หากทุกอย่างดูดีสำหรับคุณคุณสามารถคัดลอกไฟล์ด้วยปัญหาจริงที่อยู่ที่
sonar-php/its/ruling/target/actual/
ลงในไดเรกทอรีที่มีปัญหาที่คาดหวัง
sonar-php/its/ruling/src/test/resources/expected/
เพื่ออัปเดตคำอธิบายกฎทั้งหมด:
./gradlew ruleApiUpdateเพื่อดึงไฟล์คงที่สำหรับกฎ SXXXX จาก RSPEC:
./gradlew ruleApiGenerateRule -Prule=SXXXX เหมือนกันสำหรับสาขา RSPEC เฉพาะ ( master โดยค่าเริ่มต้น):
./gradlew ruleApiGenerateRule -Prule=SXXXX -Pbranch=my-branchลิขสิทธิ์ 2010-2024 Sonarsource
นักวิเคราะห์ Sonarqube เปิดตัวหลังจากวันที่ 29 พฤศจิกายน 2567 รวมถึงการแก้ไขแพตช์สำหรับเวอร์ชันก่อนหน้านี้ได้รับการเผยแพร่ภายใต้ใบอนุญาต SONAR-Available License เวอร์ชัน 1 (SSALV1)
ดูแต่ละไฟล์สำหรับรายละเอียดที่ระบุสิทธิ์การใช้งานที่ใช้กับแต่ละไฟล์ ไฟล์ที่อยู่ภายใต้ SSALV1 จะถูกบันทึกไว้ในส่วนหัวของพวกเขา