静的解析しよう
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 向けの静的解析ツールです。
こちらの方の説明が詳しいです。
https://qiita.com/qiita_masaharu/items/24bf34579119628eefe2
WordPress extensions for PHPStan
szepeviktor/phpstan-wordpress を利用します。
https://github.com/szepeviktor/phpstan-wordpress
composer.json
{
"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)
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
良さそうですね。