Importante
¡Hola a todos! Este es Viktor que ejecuta esta extensión de Phpstan. Estoy planeando dejar de contribuir al ecosistema de WordPress porque es extremadamente difícil y nadie me pide que me una a su equipo ya que soy pensador, una persona de DevOps, un fabricante de herramientas (no un constructor).
Apoye mi trabajo para evitar abandonar este paquete.
¡Gracias!
Análisis estático para el ecosistema de WordPress.
php-stubs/wordpress-stubs .php-stubs/wordpress-stubsapply_filters() y do_action() , tratando el tipo de primer @param como definitivo. Para usar esta extensión, requiere en compositor:
composer require --dev szepeviktor/phpstan-wordpressSi también instala PHPSTAN/Extension-Installer, ¡está listo!
Si no desea utilizar phpstan/extension-installer , incluya extension.neon en la configuración PHPSTAN de su proyecto:
includes :
- vendor/szepeviktor/phpstan-wordpress/extension.neon No se necesita una configuración adicional. ? Simplemente configure phpstan, por ejemplo, como se muestra a continuación:
parameters :
level : 5
paths :
- plugin.php
- inc/Para obtener más detalles, visite la referencia de configuración de Phpstan.
¡Use el compositor AutoDoLaader o un AutoDoLaader personalizado!
Ejecute el análisis con:
vendor/bin/phpstan analyze ¡Luego corrige un error y GOTO 10 !
Encuentra más información en el directorio de examples , por ejemplo examples/phpstan.neon.dist
Consulte los trozos de WooCommerce para obtener una guía específica.
apply_filters() docblock El ecosistema de WordPress a menudo utiliza phpdoc docblocks de una manera no estándar para documentar los parámetros pasados a apply_filters() . Aquí hay un ejemplo:
/**
* 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 ); Esta extensión lee estos docblocks e instruye a PHPSTAN que trate el tipo de retorno del filtro como cierto, en función de la primera etiqueta @param . En este ejemplo, Phpstan interpreta $title como string .
Para obtener los mejores resultados, asegúrese de que la primera etiqueta @param en estos docblocks sea precisa.
class Name { ... } .inc/ Directorio dedicado.apply_filters() .eval , extract , compact , list$a = '15'; if ($a) ...if necesita un booleano), vea las funciones de manejo de variablesexit_error en WP_CLI::launch o WP_CLI::runcommand para mejorar la capacidad de prueba. WordPress utiliza la función condicional y la definición de clase para permitir anulaciones. Use el comando sed para excluir a los trozos de funciones cuando se definen previamente.
sed -i -e ' s#function is_gd_image#function __is_gd_image# ' vendor/php-stubs/wordpress-stubs/wordpress-stubs.php