Make WordPress Core


Ignore:
Timestamp:
02/20/2026 02:24:12 AM (5 weeks ago)
Author:
westonruter
Message:

Build/Test Tools: Integrate PHPStan into the core development workflow.

This change introduces PHPStan static analysis configured at rule level 0, which includes: "basic checks, unknown classes, unknown functions, unknown methods called on $this, wrong number of arguments passed to those methods and functions, always undefined variables". Contributors may elect for a higher PHPStan rule level by creating a phpstan.neon which overrides phpstan.neon.dist.

  • Fix various PHPStan level 0 errors by adding @phpstan-ignore comments, updating PHPDoc types, and adding missing return values.
  • Remove existing @phpstan-ignore comments that are now obsolete or inapplicable for level 0.
  • Add a new GitHub Actions workflow for PHPStan Static Analysis. Reports are currently provided as warnings with inline annotations in pull requests and do not fail the build.
  • Add a phpstan Grunt task and include it in the precommit:php task to run before phpunit.
  • Introduce a typecheck:php npm script and a composer phpstan script to run analysis in local development environments.
  • Add documentation for PHPStan usage in tests/phpstan/README.md.

Developed in https://github.com/WordPress/wordpress-develop/pull/10419

Props justlevine, westonruter, johnbillion, desrosj, SirLouen, dmsnell, oglekler, joehoyle, jorbin.
See #64238, #63268, #52217, #51423.
Fixes #61175.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

    • Property svn:ignore
      •  

        old new  
        1111wp-cli.local.yml
        1212.git
         13phpstan.neon
        1314jsdoc
        1415composer.lock
  • trunk/src/wp-includes/class-wp-scripts.php

    r61587 r61699  
    11871187            }
    11881188        }
    1189         $stored_results[ $handle ] = $priorities[ $highest_priority_index ]; // @phpstan-ignore parameterByRef.type (We know the index is valid and that this will be a string.)
     1189        $stored_results[ $handle ] = $priorities[ $highest_priority_index ];
    11901190        return $priorities[ $highest_priority_index ];
    11911191    }
Note: See TracChangeset for help on using the changeset viewer.