継続的インテグレーション/PHP CodeSniffer
PHP CodeSniffer は、PHP コードのコード スタイルのエラーを検出するユーティリティです。 CodeSniffer のバージョン、依存関係、実行を管理するラッパーとして、composer を使用しています。 PHP で書かれた MediaWiki コードベースのファイル内で使用されるコーディング規約のガイドラインについては、Manual:コーディング規約/PHP を参照してください。
まず、composer update を実行して開発の依存関係を取得します。
ほとんどの MediaWiki 拡張機能、外装、PHP ライブラリでは、composer test を実行すると CodeSniffer も実行されます。
MediaWiki コアのサイズが大きいため、別のコマンドである composer phpcs として公開されています。
composer なしでローカルで実行
composer がタイムアウトする問題が発生した場合は、vendor/bin/phpcs -p -s で直接実行できます。
すべての sniff が見つかるようにするため、ローカル プロジェクト リポジトリの vendor/bin に Composer でインストールされた PHP_CodeSniffer のバージョンを実行することが重要です。
システムのバージョン、つまり PATH にあるものを使用しないでください。
メモリ不足のエラーが発生した場合は、メモリを増やして実行できます:
vendor/bin/phpcs -p -s -d memory_limit=256M.
バージョン化
composer.json ファイルで、特定のバージョンに固定することをお勧めします。
私たちは、semver.org の精神は守ろうとしますが、実際の基準は守りません。
私たちが気にしているのは、何があっても、composer test を実行したときに、以前合格していれば合格し、新しいバージョンがリリースされたからといってランダムに失敗することがないようにすることです。
ビルドがランダムに失敗することで、パッチをバックポートしようとしているときや、何かを開発しようとしているときに、それを修正するために作業を中断する必要があると苦痛になります。
現在はメジャー バージョンとして 0 を使用しており、新しい sniff のためにマイナー バージョンを、既存の sniff のバグ修正や機能拡張のためにパッチ バージョンを増加 (bump) する予定です。 実際に含まれる PHP コードについては、安定性は保証されません。
関連項目
- Manual:コーディング規約/PHP
- 継続的インテグレーション/エントリーポイント#PHP - 新しいリポジトリで CodeSniffer およびその他の静的解析を設定する方法
- インストール方法 - リポジトリー (ウィキメディア Gerrit 外) で CodeSniffer を設定する方法
- PHP_CodeSniffer on GitHub (upstream)
- https://phpcs.toolforge.org/