phpstan extensions
v6.6.0
ส่วนขยายสำหรับ phpstan
ในการใช้ส่วนขยายนี้ต้องใช้ในนักแต่งเพลง:
composer require --dev slam/phpstan-extensions เมื่อคุณใช้ phpstan/extension-installer , conf/slam-rules.neon จะถูกรวมโดยอัตโนมัติ
มิฉะนั้นคุณจะต้องรวม conf/slam-rules.neon ใน phpstan.neon ของคุณ:
includes :
- vendor/slam/phpstan-extensions/conf/slam-rules.neon SlamPhpStanUnusedVariableRule : ตรวจสอบตัวแปรภายในฟังก์ชั่นที่ไม่เคยใช้หลังจากการกำหนดเริ่มต้นSlamPhpStanMissingClosureParameterTypehintRule : ต้องใช้พารามิเตอร์ typehints สำหรับการปิด; คำเตือน: ไม่อนุญาตให้ใช้ phpDoc โปรดดู phpstan/phpstan-strict-rules#87SlamPhpStanStringToClassRule : ต้องใช้สตริงที่อ้างถึงคลาสที่จะแสดงด้วย ::class NotationSlamPhpStanGotoRule : ไม่อนุญาตSlamPhpStanClassNotationRule :SlamPhpStanPhpUnitFqcnAnnotationRule : คลาสที่พบในคำอธิบายประกอบ pHPUNIT ต่อไปนี้: ต้องมีอยู่:@expectedException@covers@coversDefaultClass@usesSlamPhpStanAccessGlobalVariableWithinContextRule : ยับยั้งการเข้าถึง globals ภายในคลาสที่ขยายหรือใช้คลาส/อินเตอร์เฟสที่แน่นอนSlamPhpStanAccessStaticPropertyWithinModelContextRule : ยับยั้งการเข้าถึงแอตทริบิวต์คงที่ของคลาสภายในคลาสที่ขยายหรือใช้คลาส/อินเทอร์เฟซที่แน่นอนซึ่งมีประโยชน์ในการห้ามการใช้ singletons ในโมเดล มีการกำหนด not-now-rules.neon
includes :
- vendor/slam/phpstan-extensions/conf/not-now-rules.neonกฎเหล่านี้ห้าม:
new DateTimeImmutable()new DateTime('yesterday')date('Ym-d')time()strtotime('noon') คุณควรพึ่งพาสิ่งที่เป็นนามธรรมเช่น lcobucci/clock
คำเตือน: กฎไม่สมบูรณ์แบบผู้ใช้สามารถหลอกได้อย่างง่ายดาย พวกเขามีความหมายเพียงเพื่อช่วยให้การเปลี่ยนผ่านเป็นสิ่งที่เป็นนามธรรมของนาฬิกาที่เหมาะสม
symfony-rules.neon config มีอยู่สำหรับโครงการ symfony:
includes :
- vendor/slam/phpstan-extensions/conf/symfony-rules.neonด้วยการกำหนดค่าต่อไปนี้:
SlamPhpStanSymfonyFilesystemRule : ห้ามเรียกใช้ฟังก์ชั่นระบบไฟล์ดิบที่ห่อหุ้มได้ดีโดยส่วนประกอบ symfony/filesystemSlamPhpStanSymfonyProcessRule : ห้ามเรียกใช้ฟังก์ชั่นระบบดิบที่ห่อหุ้มได้ดีโดยส่วนประกอบ symfony/process มีการกำหนดค่า yii-rules.neon สำหรับโครงการ yii:
includes :
- vendor/slam/phpstan-extensions/conf/yii-rules.neonด้วยการกำหนดค่าต่อไปนี้:
SlamPhpStanAccessGlobalVariableWithinContextRule เพื่อปฏิเสธการใช้งาน $_GET , $_POST และตัวแปรระดับโลกอื่น ๆ ในแบบจำลองที่ใช้งาน yiidbActiveRecordInterface : การเข้าถึง Singletons ในโมเดลSlamPhpStanAccessStaticPropertyWithinModelContextRule เพื่อปฏิเสธการใช้งานของตัวแปรคงที่ yiiBaseYii เช่น $app ในโมเดลที่ใช้งาน yiidbActiveRecordInterface : การเข้าถึงซิงเกิลในแบบจำลอง