Larastan สร้างขึ้นโดย Can Vural และ Nuno Maduro รับอาร์ตเวิร์กที่ออกแบบโดย @Caneco ดูแลโดย Can Vural และ Viktor Szépe และเป็นส่วนขยาย PHPStan สำหรับ Laravel Larastan มุ่งเน้นไปที่ การค้นหาข้อผิดพลาดในโค้ดของคุณ มันจับข้อบกพร่องทั้งหมด ตั้งแต่ก่อนที่คุณจะเขียนการทดสอบ โค้ดเสียอีก
แม้ว่าตามคำจำกัดความแล้ว "การวิเคราะห์แบบคงที่" จะไม่โหลดโค้ดแอปพลิเคชันของคุณใดๆ Larastan บูทคอนเทนเนอร์ของแอปพลิเคชันของคุณ เพื่อให้สามารถแก้ไขประเภทที่สามารถคำนวณได้เฉพาะตอนรันไทม์เท่านั้น นั่นเป็นเหตุผลที่เราใช้คำว่า "การวิเคราะห์โค้ด" แทน "การวิเคราะห์แบบคงที่"
เวอร์ชันลาร์ราเวล | เวอร์ชันลาราสถาน |
---|---|
<9 | 1.x |
> 9.0 && <11.15 | 2.x |
11.15+ | 3.0+ |
กำหนดให้มี:
1 : ขั้นแรก คุณสามารถใช้ Composer เพื่อติดตั้ง Larastan เป็นการพึ่งพาการพัฒนาในโครงการ Laravel ของคุณ:
composer require --dev " larastan/larastan:^3.0 "
ใช้ Larastan เพื่อวิเคราะห์แพ็คเกจ Laravel หรือไม่ คุณอาจต้องติดตั้ง
orchestra/testbench
2 : จากนั้นสร้างไฟล์ phpstan.neon
หรือ phpstan.neon.dist
ในรูทของแอปพลิเคชันของคุณ อาจมีลักษณะเช่นนี้:
includes:
- vendor/larastan/larastan/extension.neon
- vendor/nesbot/carbon/extension.neon
parameters:
paths:
- app/
# Level 10 is the highest level
level: 5
# ignoreErrors:
# - '#PHPDoc tag @var#'
#
# excludePaths:
# - ./*/*/FileToBeExcluded.php
สำหรับตัวเลือกที่มีทั้งหมด โปรดดูเอกสารประกอบของ PHPStan: https://phpstan.org/config-reference
3 : สุดท้ายนี้ คุณอาจเริ่มวิเคราะห์โค้ดของคุณโดยใช้คำสั่งคอนโซล phpstan:
./vendor/bin/phpstan analyse
หากคุณได้รับข้อผิดพลาด Allowed memory size exhausted
คุณสามารถใช้ตัวเลือก --memory-limit
แก้ไขปัญหาได้:
./vendor/bin/phpstan analyse --memory-limit=2G
การเพิกเฉยข้อผิดพลาดเฉพาะสามารถทำได้โดยใช้ความคิดเห็น php หรือในไฟล์การกำหนดค่า:
// @phpstan-ignore-next-line
$ test -> badMethod ();
$ test -> badMethod (); // @phpstan-ignore-line
เมื่อละเว้นข้อผิดพลาดในไฟล์กำหนดค่าของ PHPStan ข้อผิดพลาดเหล่านั้นจะถูกละเว้นโดยการเขียน regex ตามข้อความแสดงข้อผิดพลาด:
parameters :
ignoreErrors :
- ' #Call to an undefined method .*badMethod()# '
ในโค้ดเบสรุ่นเก่า อาจเป็นเรื่องยากที่จะใช้เวลาแก้ไขโค้ดทั้งหมดเพื่อให้ผ่านระดับ PHPStan ที่สูง
เพื่อแก้ไขปัญหานี้ คุณสามารถสร้างไฟล์พื้นฐานได้ ไฟล์พื้นฐานจะสร้างไฟล์การกำหนดค่าที่มีข้อผิดพลาดในปัจจุบันทั้งหมด ดังนั้นจึงสามารถเขียนโค้ดใหม่ได้ตามมาตรฐานที่สูงกว่าโค้ดเก่า (เอกสาร PHPStan)
./vendor/bin/phpstan analyse --generate-baseline
รายการกฎที่กำหนดค่าได้เฉพาะสำหรับ Laravel สามารถพบได้ที่นี่
รายชื่อคุณลักษณะของ Larastan สามารถพบได้ที่นี่
รายชื่อประเภท PHPDoc เฉพาะสำหรับ Larastan สามารถพบได้ที่นี่
คุณสามารถดูรายการพารามิเตอร์การกำหนดค่าแบบกำหนดเองที่คุณสามารถใช้ในไฟล์กำหนดค่า PHPStan ได้ที่นี่
ขณะนี้บางส่วนของ Laravel มีมนต์ขลังเกินกว่าที่ Larastan/PHPStan จะเข้าใจได้ เราแสดงรายการข้อผิดพลาดทั่วไปที่ควรเพิกเฉย เพิ่มตามความจำเป็น
ขอขอบคุณที่พิจารณาการมีส่วนร่วมกับ Larastan แนวทางการสนับสนุนทั้งหมดระบุไว้ที่นี่
Larastan เป็นซอฟต์แวร์โอเพ่นซอร์สที่ได้รับอนุญาตภายใต้ใบอนุญาต MIT