Extensiones para Phpstan
Para usar esta extensión, requiere en compositor:
composer require --dev slam/phpstan-extensions Cuando esté utilizando phpstan/extension-installer , conf/slam-rules.neon se incluirá automáticamente.
De lo contrario, debe incluir conf/slam-rules.neon en su phpstan.neon :
includes :
- vendor/slam/phpstan-extensions/conf/slam-rules.neon SlamPhpStanUnusedVariableRule : verifique las funciones interiores variables nunca utilizadas después de la asignación inicialSlamPhpStanMissingClosureParameterTypehintRule : requiere parámetros typeHints para cierres; ADVERTENCIA: No se permite PHPDOC, ver phpstan/phpstan-strict-rules#87SlamPhpStanStringToClassRule : requiere cadenas que se refieran a las clases para expresarse con ::classSlamPhpStanGotoRule : no goto permitidoSlamPhpStanClassNotationRule :SlamPhpStanPhpUnitFqcnAnnotationRule : Las clases que se encuentran en las siguientes anotaciones de Phpunit deben existir:@expectedException@covers@coversDefaultClass@usesSlamPhpStanAccessGlobalVariableWithinContextRule : inhibir el acceso a globales dentro de las clases que extienden o implementan una determinada clase/interfazSlamPhpStanAccessStaticPropertyWithinModelContextRule : inhibir el acceso a los atributos estáticos de una clase dentro de las clases que extienden o implementan una determinada clase/interfaz, útil para prohibir el uso de singletons en modelos Una configuración not-now-rules.neon está presente para prohibir las llamadas al sistema de fecha sin procesar:
includes :
- vendor/slam/phpstan-extensions/conf/not-now-rules.neonEstas reglas prohíben:
new DateTimeImmutable()new DateTime('yesterday')date('Ym-d')time()strtotime('noon') En su lugar, debe confiar en una abstracción de reloj como lcobucci/clock .
Advertencia: las reglas no son perfectas, un usuario puede engañarlas fácilmente; Solo están destinados a ayudar a la transición a una abstracción de reloj adecuada.
Una configuración symfony-rules.neon está presente para proyectos Symfony:
includes :
- vendor/slam/phpstan-extensions/conf/symfony-rules.neonCon las siguientes configuraciones:
SlamPhpStanSymfonyFilesystemRule : prohíbe las llamadas a las funciones del sistema de archivos sin procesar bien envueltas por componente symfony/filesystemSlamPhpStanSymfonyProcessRule : Prohibir las llamadas a las funciones del sistema sin procesar bien envueltas por componente symfony/process Una configuración de yii-rules.neon está presente para proyectos yii:
includes :
- vendor/slam/phpstan-extensions/conf/yii-rules.neonCon las siguientes configuraciones:
SlamPhpStanAccessGlobalVariableWithinContextRule para negar el uso de $_GET , $_POST y otras variables globales en modelos que implementan yiidbActiveRecordInterface : acceder a singletons en modelos se considera una antigüedadSlamPhpStanAccessStaticPropertyWithinModelContextRule para negar el uso de variables estáticas yiiBaseYii como $app en modelos que implementan yiidbActiveRecordInterface : acceder a singletons en modelos se considera una antiinteria