我希望在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
听起来不错。