Wichtig
Hallo zusammen! Dies ist Viktor, der diese Phpstan -Erweiterung betreibt. Ich habe vor, nicht mehr zum WordPress -Ökosystem beizutragen, da es extrem schwierig ist und niemand mich bittet, mich seinem Team anzuschließen, da ich ein Denker, eine DevOps -Person, ein Werkzeughersteller (kein Bauunternehmer) bin.
Bitte unterstützen Sie meine Arbeit, um zu vermeiden, dieses Paket aufzugeben.
Danke schön!
Statische Analyse für das WordPress -Ökosystem.
php-stubs/wordpress-stubs .php-stubs/wordpress-stubs behandelt werdenapply_filters() und do_action() , die den Typ des ersten @param als endgültig behandeln. Um diese Erweiterung zu verwenden, benötigen Sie sie in Komponist:
composer require --dev szepeviktor/phpstan-wordpressWenn Sie auch Phpstan/Extension-Installer installieren, sind Sie alle festgelegt!
Wenn Sie phpstan/extension-installer nicht verwenden möchten, enthalten Sie extension.neon in der Phpstan-Konfiguration Ihres Projekts:
includes :
- vendor/szepeviktor/phpstan-wordpress/extension.neon Es ist kein zusätzliches Setup erforderlich. ? Konfigurieren Sie beispielsweise Phpstan - wie unten gezeigt:
parameters :
level : 5
paths :
- plugin.php
- inc/Weitere Informationen finden Sie in der Phpstan Config Reference.
Verwenden Sie den Composer Autoloader oder einen benutzerdefinierten Autoloader!
Führen Sie die Analyse mit: aus:
vendor/bin/phpstan analyze Dann beheben Sie einen Fehler und GOTO 10 !
Sie finden weitere Informationen im examples , z. B. examples/phpstan.neon.dist
In WooCommerce -Stubs finden Sie eine bestimmte Anleitung.
apply_filters() docBlocks Das WordPress-Ökosystem verwendet häufig PHPDOC-Docblocks auf nicht standardmäßige Weise, um Parameter zu dokumentieren, die an apply_filters() übergeben wurden. Hier ist ein Beispiel:
/**
* 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 ); Diese Erweiterung liest diese Docblocks und weist PHPSTAN an, den Rückgabetyp des Filters als bestimmt auf der Grundlage des ersten @param -Tags zu behandeln. In diesem Beispiel interpretiert Phpstan $title als string .
Für die besten Ergebnisse sicherstellen Sie, dass das erste @param -Tag in diesen DocBlocks korrekt ist.
class Name { ... } .inc/ Verzeichnis.apply_filters() -Anrufen hinzu.eval , extract , compact , list$a = '15'; if ($a) ...if Bedarf eines Booleschen), siehe variable Handhabungsfunktionenexit_error in WP_CLI::launch oder WP_CLI::runcommand für eine verbesserte Testbarkeit zu aktivieren. WordPress verwendet eine bedingte Funktion und Klassendefinition, um Überschreibungen zu ermöglichen. Verwenden Sie sed -Befehl, um Funktionsstummel auszuschließen, wenn sie zuvor definiert sind.
sed -i -e ' s#function is_gd_image#function __is_gd_image# ' vendor/php-stubs/wordpress-stubs/wordpress-stubs.php