Erweiterungen für Phpstan
Um diese Erweiterung zu verwenden, benötigen Sie sie in Komponist:
composer require --dev slam/phpstan-extensions Wenn Sie phpstan/extension-installer verwenden, werden conf/slam-rules.neon automatisch enthalten.
Andernfalls müssen Sie conf/slam-rules.neon in Ihr phpstan.neon einbeziehen:
includes :
- vendor/slam/phpstan-extensions/conf/slam-rules.neon SlamPhpStanUnusedVariableRule : Überprüfen Sie, ob die Variablen innerhalb der Funktionen nach der Erstzuweisung nie verwendet werdenSlamPhpStanMissingClosureParameterTypehintRule : Benötigt Parameter Typeherts für Verschlüsse; WARNUNG: Kein Phpdoc erlaubt, siehe phpstan/phpstan-strict-rules#87SlamPhpStanStringToClassRule : Benötigt Zeichenfolgen, die sich auf Klassen beziehen, die mit ::class ausgedrückt werden sollenSlamPhpStanGotoRule : Keine Goto erlaubtSlamPhpStanClassNotationRule :SlamPhpStanPhpUnitFqcnAnnotationRule : Klassen, die in folgenden Phpunit -Annotationen gefunden wurden, müssen vorhanden sind:@expectedException@covers@coversDefaultClass@usesSlamPhpStanAccessGlobalVariableWithinContextRule : Hemmung des Zugriffs auf Globale innerhalb von Klassen, die eine bestimmte Klasse/Schnittstelle erweitern oder implementierenSlamPhpStanAccessStaticPropertyWithinModelContextRule : Hemmung des Zugriff Eine not-now-rules.neon -Konfiguration ist vorhanden, um Rohdatum-Systemanrufe zu verbieten:
includes :
- vendor/slam/phpstan-extensions/conf/not-now-rules.neonDiese Regeln verbieten:
new DateTimeImmutable()new DateTime('yesterday')date('Ym-d')time()strtotime('noon') Sie sollten sich stattdessen auf eine Uhr Abstraktion wie lcobucci/clock verlassen.
WARNUNG: Die Regeln sind nicht perfekt, ein Benutzer kann sie problemlos tricksen. Sie sollen nur den Übergang zu einer ordnungsgemäßen Uhrabstraktion helfen.
Eine symfony-rules.neon -Konfiguration ist für Symfony-Projekte vorhanden:
includes :
- vendor/slam/phpstan-extensions/conf/symfony-rules.neonMit den folgenden Konfigurationen:
SlamPhpStanSymfonyFilesystemRule : Verbot Aufrufe der RAW -Dateisystemfunktionen, die von symfony/filesystem gut verpackt sindSlamPhpStanSymfonyProcessRule : Verbot Aufrufe von RAW -Systemfunktionen, die von symfony/process -Komponente gut verpackt sind Eine yii-rules.neon -Konfiguration ist für YII-Projekte vorhanden:
includes :
- vendor/slam/phpstan-extensions/conf/yii-rules.neonMit den folgenden Konfigurationen:
SlamPhpStanAccessGlobalVariableWithinContextRule yiidbActiveRecordInterface um die Verwendung von $_GET , $_POST und anderen globalen Variablen in Modellen zu verweigernSlamPhpStanAccessStaticPropertyWithinModelContextRule , um die Verwendung von statischen Variablen yiiBaseYii zu verweigern, wie $app in Modellen implementieren yiidbActiveRecordInterface : Zugriff auf Singletons in Modellen wird als Anti-Patter angesehen