PHPSTAN se concentre sur la recherche de bogues dans votre code. Mais en PHP, il y a beaucoup de latitude dans la façon dont les choses peuvent être écrites. Ce référentiel contient des règles supplémentaires qui tournent autour du code strictement et fortement dactylographié sans casting lâche pour ceux qui souhaitent une sécurité supplémentaire dans une programmation extrêmement défensive:
if , elseif , après ! , et des deux côtés de && et || .+ et numériques dans - / * / / / ** / % .$var++ , $var-- , ++$var et --$var .$strict pour une meilleure sécurité de type, il doit être défini sur true :in_array (3ème paramètre)array_search (3ème paramètre)array_keys (3ème paramètre; uniquement si le 2ème paramètre $search_value est fourni)base64_decode (2ème paramètre)while la boucle et for l'attribution initiale de la boucle ne peuvent pas être utilisées après la boucle.switch et la valeur case doivent correspondre. PHP les compare librement par défaut et cela peut conduire à des résultats inattendus.empty() - C'est une comparaison très lâche (voir manuel), il est recommandé d'en utiliser un plus strict.?: :) - implique une comparaison faible, il est recommandé d'utiliser un opérateur de coalesce nul ( ?? ) ou un opérateur ternaire avec une condition stricte.$$foo , $this->$method() etc.)instanceof , la vérification des types is_* Fonctions et comparaisons strictes === / !== . Ces vérifications peuvent être désactivées en définissant checkAlwaysTrueInstanceof Of / checkAlwaysTrueCheckTypeFunctionCall / checkAlwaysTrueStrictComparison à false.$ls = `ls -la` )$this utiliser directement au lieu d'utiliser $this variable indirectementDes règles supplémentaires arrivent dans les versions ultérieures!
Pour utiliser cette extension, nécessitez-le dans le compositeur:
composer require --dev phpstan/phpstan-strict-rules
Si vous installez également PhpStan / Extension-Installer, vous êtes tous réglés!
Si vous ne souhaitez pas utiliser phpstan/extension-installer , incluez des règles.neon dans la configuration phpstan de votre projet:
includes:
- vendor/phpstan/phpstan-strict-rules/rules.neon
Vous pouvez désactiver les règles en utilisant les paramètres de configuration:
parameters :
strictRules :
disallowedLooseComparison : false
booleansInConditions : false
uselessCast : false
requireParentConstructorCall : false
disallowedBacktick : false
disallowedEmpty : false
disallowedImplicitArrayCreation : false
disallowedShortTernary : false
overwriteVariablesWithLoop : false
closureUsesThis : false
matchingInheritedMethodNames : false
numericOperandsInArithmeticOperators : false
strictFunctionCalls : false
dynamicCallOnStaticMethod : false
switchConditionsMatchingType : false
noVariableVariables : false
strictArrayFilter : false
illegalConstructorMethodCall : falseEn plus d'introduire de nouvelles règles personnalisées, PhpStan-STRICT-RULES modifie également les valeurs par défaut de certains paramètres de configuration qui sont présents dans PHPSTAN lui-même. Ces paramètres sont documentés sur phpstan.org.
Si vous ne voulez pas commencer à utiliser toutes les règles strictes disponibles à la fois mais seulement une ou deux, vous le pouvez!
Vous pouvez désactiver toutes les règles des rules.neon incluses.
parameters :
strictRules :
allRules : falseEnsuite, vous pouvez réactiver les règles individuelles avec des paramètres de configuration:
parameters :
strictRules :
allRules : false
booleansInConditions : true Même avec strictRules.allRules false En effet, PhpStan-STRICT-RULES modifie également les valeurs par défaut de certains paramètres de configuration qui sont présents dans PHPSTAN lui-même. Ces paramètres sont documentés sur phpstan.org.