Download the PHP package szepeviktor/phpstan-wordpress without Composer
On this page you can find all versions of the php package szepeviktor/phpstan-wordpress. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download szepeviktor/phpstan-wordpress
More information about szepeviktor/phpstan-wordpress
Files in szepeviktor/phpstan-wordpress
Package phpstan-wordpress
Short Description WordPress extensions for PHPStan
License MIT
Informations about the package phpstan-wordpress
[!IMPORTANT] Hello everyone! This is Viktor who runs this PHPStan extension. I am planning to stop contributing to the WordPress ecosystem because it is extremely difficult and no one asks me to join his team as I am a thinker, a devops person, a tool maker (not a builder).
Please support my work to avoid abandoning this package.
Thank you!
WordPress extensions for PHPStan
Static analysis for the WordPress ecosystem.
Installation
Add this package to your project.
Make PHPStan find it automatically using phpstan/extension-installer
.
Or manually include it in your phpstan.neon
.
Configuration
Needs no extra configuration. :smiley: Simply configure PHPStan - for example - this way.
Please read PHPStan Config Reference.
:bulb: Use Composer autoloader or a custom autoloader!
Usage
Just start the analysis: vendor/bin/phpstan analyze
then fix an error and GOTO 10
!
You find further information in the examples
directory
e.g. examples/phpstan.neon.dist
Usage in WooCommerce webshops
Please see WooCommerce Stubs
What this extension does
- Makes it possible to run PHPStan on WordPress plugins and themes
- Loads
php-stubs/wordpress-stubs
package - Provides dynamic return type extensions for many core functions
- Defines some core constants
- Handles special functions and classes e.g.
is_wp_error()
- Validates the optional docblock that precedes a call to
apply_filters()
and treats the type of its first@param
as certain
Usage of an apply_filters()
docblock
WordPress core - and the wider WordPress ecosystem - uses PHPDoc docblocks
in a non-standard manner to document the parameters passed to apply_filters()
.
Example:
This extension understands these docblocks when they're present in your code
and uses them to instruct PHPStan to treat the return type of the filter as certain,
according to the first @param
tag. In the example above this means PHPStan treats the type of $title
as string
.
To make the best use of this feature,
ensure that the type of the first @param
tag in each of these such docblocks is accurate and correct.
Make your code testable
- Write clean OOP code: 1 class per file, no other code in class files outside
class Name { ... }
- Structure your code: uniform class names (WPCS or PSR-4), keep classes in a separate directory
inc/
- Add proper PHPDoc blocks to classes, properties, methods, functions, and calls to
apply_filters()
- Choose your main plugin file parts.
- Avoid using core constants, use core functions
- Avoid bad parts of PHP
- functions:
eval
,extract
,compact
,list
- type juggling:
$a = '15'; if ($a) ...
- functions:
- If you need robust code try avoiding all kinds of type juggling (e.g.
if
needs a boolean), see Variable handling functions - If you are not bound by PHP 5 consider following Neutron Standard
- Do not enable
exit_error
inWP_CLI::launch
orWP_CLI::runcommand
to keep your code testable
Dirty corner (FAQ)
WordPress uses conditional function and class definition for override purposes.
Use sed
command to exclude function stubs when they are previously defined.
All versions of phpstan-wordpress with dependencies
php-stubs/wordpress-stubs Version ^4.7 || ^5.0 || ^6.0
phpstan/phpstan Version ^1.11.0
symfony/polyfill-php73 Version ^1.12.0