Make WordPress Core

Changeset 61699 for trunk/phpcs.xml.dist


Ignore:
Timestamp:
02/20/2026 02:24:12 AM (3 months 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/phpcs.xml.dist

    r60939 r61699  
    8181    <exclude-pattern>/tests/phpunit/build*</exclude-pattern>
    8282    <exclude-pattern>/tests/phpunit/data/*</exclude-pattern>
     83
     84    <!-- PHPStan bootstrap, stubs, and baseline. -->
     85    <exclude-pattern>/tests/phpstan/*</exclude-pattern>
    8386
    8487    <exclude-pattern>/tools/*</exclude-pattern>
Note: See TracChangeset for help on using the changeset viewer.