Extensions pour phpstan
Pour utiliser cette extension, nécessitez-le dans le compositeur:
composer require --dev slam/phpstan-extensions Lorsque vous utilisez phpstan/extension-installer , conf/slam-rules.neon sera automatiquement inclus.
Sinon, vous devez inclure conf/slam-rules.neon dans votre phpstan.neon :
includes :
- vendor/slam/phpstan-extensions/conf/slam-rules.neon SlamPhpStanUnusedVariableRule : Vérifiez les fonctions à l'intérieur de la variable jamais utilisées après l'attribution initialeSlamPhpStanMissingClosureParameterTypehintRule : nécessite un type de paramètre pour les fermetures; AVERTISSEMENT: Aucun PHPDOC autorisé, voir phpstan/phpstan-strict-rules#87SlamPhpStanStringToClassRule : nécessite des chaînes qui se réfèrent aux classes à exprimer avec ::classSlamPhpStanGotoRule : pas de goto autoriséSlamPhpStanClassNotationRule :SlamPhpStanPhpUnitFqcnAnnotationRule : les classes trouvées dans les annotations phpunit suivantes doivent exister:@expectedException@covers@coversDefaultClass@usesSlamPhpStanAccessGlobalVariableWithinContextRule : inhibe l'accès aux globaux au sein des classes qui étendent ou implémentent une certaine classe / interfaceSlamPhpStanAccessStaticPropertyWithinModelContextRule : Inhibit l'accès aux attributs statiques d'une classe dans les classes qui étendent ou implémentent une certaine classe / interface, utile pour interdire l'utilisation des singletons dans les modèles Une configuration not-now-rules.neon est présente pour interdire les appels du système de date bruts:
includes :
- vendor/slam/phpstan-extensions/conf/not-now-rules.neonCes règles interdisent:
new DateTimeImmutable()new DateTime('yesterday')date('Ym-d')time()strtotime('noon') Vous devriez plutôt compter sur une abstraction d'horloge comme lcobucci/clock .
Avertissement: les règles ne sont pas parfaites, un utilisateur peut les tromper facilement; Ils sont destinés uniquement à aider à la transition vers une abstraction d'horloge appropriée.
Une configuration symfony-rules.neon est présente pour les projets Symfony:
includes :
- vendor/slam/phpstan-extensions/conf/symfony-rules.neonAvec les configurations suivantes:
SlamPhpStanSymfonyFilesystemRule : Les appels interdits au système de fichiers bruts fonctionnent bien enveloppé par le composant symfony/filesystemSlamPhpStanSymfonyProcessRule : les appels interdits aux fonctions du système brut bien enveloppés par le composant symfony/process Une configuration yii-rules.neon est présente pour les projets YII:
includes :
- vendor/slam/phpstan-extensions/conf/yii-rules.neonAvec les configurations suivantes:
SlamPhpStanAccessGlobalVariableWithinContextRule pour nier l'utilisation de $_GET , $_POST et d'autres variables globales dans les modèles implémentant yiidbActiveRecordInterface : l'accès aux singletons dans les modèles est considéréSlamPhpStanAccessStaticPropertyWithinModelContextRule pour nier l'utilisation de variables statiques yiiBaseYii comme $app dans les modèles implémentant yiidbActiveRecordInterface : l'accès aux singletons dans les modèles est considéré comme un anti-anti-antinal