Important
Bonjour à tous! C'est Viktor qui gère cette extension PHPSTAN. Je prévois de cesser de contribuer à l'écosystème WordPress car c'est extrêmement difficile et personne ne me demande de rejoindre son équipe car je suis un penseur, un DevOps, un fabricant d'outils (pas un constructeur).
Veuillez soutenir mon travail pour éviter d'abandonner ce package.
Merci!
Analyse statique pour l'écosystème WordPress.
php-stubs/wordpress-stubs .php-stubs/wordpress-stubsapply_filters() et do_action() , traitant le type du premier @param comme définitif. Pour utiliser cette extension, nécessitez-le dans le compositeur:
composer require --dev szepeviktor/phpstan-wordpressSi vous installez également PhpStan / Extension-Installer, vous êtes tous réglés!
Si vous ne souhaitez pas utiliser phpstan/extension-installer , incluez extension.neon dans la configuration phpstan de votre projet:
includes :
- vendor/szepeviktor/phpstan-wordpress/extension.neon Aucune configuration supplémentaire n'est nécessaire. ? Configurez simplement PhpStan - par exemple - comme indiqué ci-dessous:
parameters :
level : 5
paths :
- plugin.php
- inc/Pour plus de détails, visitez la référence de configuration PHPSTAN.
Utilisez le compositeur Autoloader ou un Autoloader personnalisé!
Exécutez l'analyse avec:
vendor/bin/phpstan analyze Corrigez ensuite une erreur et GOTO 10 !
Vous trouvez plus d'informations dans le répertoire examples , par exemple examples/phpstan.neon.dist
Reportez-vous aux talons WooCommerce pour des conseils spécifiques.
apply_filters() docblock L'écosystème WordPress utilise souvent des docblocks PHPDOC de manière non standard pour documenter les paramètres passés à apply_filters() . Voici un exemple:
/**
* Filters the page title when creating an HTML drop-down list of pages.
*
* @param string $title Page title.
* @param WP_Post $page Page data object.
*/
$ title = apply_filters ( ' list_pages ' , $ title , $ page ); Cette extension lit ces docblocks et demande à PhpStan de traiter le type de retour du filtre comme certains, sur la base de la première balise @param . Dans cet exemple, PhpStan interprète $title en tant que string .
Pour les meilleurs résultats, assurez-vous que la première balise @param dans ces docblocks est exacte.
class Name { ... } .inc/ dédié.apply_filters() .eval , extract , compact , list$a = '15'; if ($a) ...if a besoin d'un booléen), voir les fonctions de traitement des variablesexit_error dans WP_CLI::launch ou WP_CLI::runcommand pour une testabilité améliorée. WordPress utilise la fonction conditionnelle et la définition de la classe pour permettre les remplacements. Utilisez la commande sed pour exclure les talons de fonction lorsqu'ils sont précédemment définis.
sed -i -e ' s#function is_gd_image#function __is_gd_image# ' vendor/php-stubs/wordpress-stubs/wordpress-stubs.php