我希望在WordPress开发中也能进行静态分析!

让我们静下心来分析一下

WordPress のプログラムを書いているときにサイトが止まるような実行エラーって怖いですよね。
それらを少しでも減らすために、プログラム公開前に自身の開発環境で、型のチェックや引数のチェックなど、静的解析を正しく行うことで、予め実行エラーに気づける環境を作りましょう。

環境

    • WordPress プラグイン開発

 

    PHP7

目录结构

.
├── RAPI_Plugin.php  # plugin main ファイル
├── composer.json
├── composer.lock
├── phpstan.neon     # phpstan 設定ファイル
├── require.php
├── src              # 静的解析したいプログラムのディレクトリ
│   ├── Controllers
│   ├── RAPI.php
│   ├── Models
│   └── Routes
├── bin
├── tests
└── vendor

PHPStan是一个用于静态代码分析的PHP静态类型检查器工具。

这是用于PHP的静态分析工具。
这方面的说明在这里更详细。
https://qiita.com/qiita_masaharu/items/24bf34579119628eefe2

PHPStan的WordPress扩展

我将使用szepeviktor/phpstan-wordpress。
https://github.com/szepeviktor/phpstan-wordpress

{
    "require-dev": {
        "szepeviktor/phpstan-wordpress": "^0.2.0"
    },
    "scripts": {
        "post-install-cmd": "PHPStan\\WordPress\\Composer\\FixWpStubs::php73Polyfill",
        "post-update-cmd": "PHPStan\\WordPress\\Composer\\FixWpStubs::php73Polyfill"
    }
}

执行 composer install

设定文件(phpstan.neon)

includes:
    - vendor/szepeviktor/phpstan-wordpress/extension.neon
parameters:
    excludes_analyse: ['bin', 'tests', 'vendor']
    autoload_directories:
        - ./src
    bootstrap: null
    level: max
    fileExtensions:
        - php
    inferPrivatePropertyTypeFromConstructor: true

准备执行

composer update --classmap-authoritative 

执行此命令

执行

./vendor/bin/phpstan analyse --memory-limit 256M .

 11/11 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%


 [OK] No errors

听起来不错。

bannerAds