Règles PHPSTAN pour détecter les appels interdits et plus, sans exécuter le code.
Il existe certaines fonctions, méthodes et constantes qui ne doivent pas être utilisées dans le code de production. Un bon exemple est var_dump() , il est souvent utilisé pour déboguer rapidement les problèmes mais doit être supprimé avant de commettre le code. Et parfois ce n'est pas le cas.
Un autre exemple serait un enregistreur générique. Disons que vous utilisez l'une des bibliothèques de journalisation génériques, mais vous avez votre propre enregistreur qui ajoutera plus d'informations, ou désinfectera les données, avant d'appeler le journaliste générique. Votre code ne doit pas appeler directement le journaliste générique, mais doit à la place utiliser votre enregistreur personnalisé.
Cette extension PHPSTAN détectera une telle utilisation, si elle est configurée. Il convient de noter que cette extension n'est pas un moyen de se défendre contre ou de détecter les développeurs hostiles, car ils peuvent obscurcir les appels par exemple. Cette extension est censée être une autre paire d'yeux, détectant vos propres erreurs, elle ne vise pas à détecter tous les choses.
Les tests fourniront des exemples ce qui est actuellement détecté. S'il n'est pas couvert par les tests, il pourrait être le cas, mais ne sera probablement pas détecté. *Test.php sont les tests, commencent par ceux, le code de test analysé est en SRC, les classes de test requises dans les LIB.
N'hésitez pas à déposer des problèmes ou à créer des demandes de traction si vous avez besoin de détecter plus d'appels.
Installez l'extension à l'aide du compositeur:
composer require --dev spaze/phpstan-disallowed-calls
PHPSTAN, l'outil d'analyse statique PHP, est une exigence.
Si vous utilisez PHPSTAN / Extension-Installer, vous êtes tous définis et pouvez sauter à la configuration.
Pour une installation manuelle, ajoutez-le à votre phpstan.neon :
includes :
- vendor/spaze/phpstan-disallowed-calls/extension.neon Vous pouvez commencer avec des fichiers de configuration groupés.
L'extension prend également en charge les règles personnalisées polyvalentes.
Disons que vous avez interdit foo() avec des règles personnalisées. Mais vous souhaitez le réaffecter lorsqu'il est utilisé dans votre wrapper personnalisé, ou lorsque le premier paramètre est égal, ou non, une valeur spécifiée. L'extension offre plusieurs façons de procéder:
La réalliation des attributs utilise une configuration similaire.
Utilisez le générateur fourni pour générer un extrait de configuration à partir des directives de configuration disable_functions et disable_classes .
------ --------------------------------------------------------
Line libraries/Report/Processor/CertificateTransparency.php
------ --------------------------------------------------------
116 Calling var_dump() is forbidden, use logger instead
------ --------------------------------------------------------
Les noms de fonction, les noms de méthodes, les noms de classe, les espaces de noms sont assortis, quel que soit leur cas (la découverte de print_r trouvera également des appels print_R ), tandis que toute autre chose comme les constantes, les noms de fichiers, les chemins ne le sont pas.
Vous pouvez également utiliser cette extension sans d'autres règles PHPSTAN. Cela peut être utile si vous souhaitez par exemple vérifier un code tiers pour certains appels ou utilisation de quelque chose.
Si vous souhaitez contribuer (génial, merci!), Vous devez ajouter / exécuter des tests pour vos contributions. Installez d'abord les dépendances Dev en exécutant composer install , puis exécutez les tests PHPUnit avec composer test , voir scripts dans composer.json . Les tests sont également exécutés sur GitHub avec des actions sur chaque poussée.
Vous pouvez résoudre automatiquement les problèmes de style de codage en exécutant composer cs-fix .
Il y a un projet similaire avec une configuration légèrement différente, créée presque en même temps (juste quelques jours de différence): le code interdit PHPSTAN.