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 : يتطلب المعلمة من النوعين للإغلاق ؛ تحذير: لا مسموح بالـ PHPDOC ، انظر phpstan/phpstan-strict-rules#87SlamPhpStanStringToClassRule : يتطلب سلاسل تشير إلى الفصول التي سيتم التعبير عنها مع ::classSlamPhpStanGotoRule : لا يسمح GotoSlamPhpStanClassNotationRule :SlamPhpStanPhpUnitFqcnAnnotationRule : يجب أن توجد فئات موجودة في تعليقات التعليقات التوضيحية التالية:@expectedException@covers@coversDefaultClass@usesSlamPhpStanAccessGlobalVariableWithinContextRule : تمنع الوصول إلى الكرات داخل الفئات التي تمتد أو تنفيذ فئة/واجهة معينةSlamPhpStanAccessStaticPropertyWithinModelContextRule : تمنع الوصول إلى السمات الثابتة لفئة ما في فئات تمدد أو تنفيذ فئة/واجهة معينة ، مفيدة لحظر استخدام المفرد في النماذج 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 .
includes :
- vendor/slam/phpstan-extensions/conf/symfony-rules.neonمع التكوينات التالية:
SlamPhpStanSymfonyFilesystemRule : لا سمح للمكالمات إلى وظائف نظام الملفات الخام ملفوف جيدا بواسطة مكون symfony/filesystemSlamPhpStanSymfonyProcessRule : لا سمح المكالمات إلى وظائف النظام الخام ملفوف جيدًا بواسطة مكون symfony/process A yii-rules.neon config موجود لمشاريع yii:
includes :
- vendor/slam/phpstan-extensions/conf/yii-rules.neonمع التكوينات التالية:
SlamPhpStanAccessGlobalVariableWithinContextRule لإنكار استخدام $_GET و yiidbActiveRecordInterface $_POST وغيرهاSlamPhpStanAccessStaticPropertyWithinModelContextRule لإنكار استخدام المتغيرات الثابتة yiiBaseYii مثل $app في النماذج التي تنفذ yiidbActiveRecordInterface : يعتبر الوصول إلى المفردات في النماذج مضادًا للانتقام