ご提供いただいた情報に基づき、CheckCommand を新たに追加する方針を具体化します。
- CheckCommand クラスの作成
- CommandInterface を実装する新しい CheckCommand クラスを作成
--threshold=<値>
オプションを処理する機能を実装- 指定した閾値を超えるローカル変数酷使度が見つかった場合、エラーコード 2 で終了
- CommandFactory クラスの修正
- check コマンドを認識して適切に CheckCommand インスタンスを生成するよう拡張
- --threshold パラメータをパースする処理を追加
- 実装の詳細
- CheckCommand は内部的に ScopesCommand と同様のロジックを使用してファイル解析
- レポート出力として、使用した閾値、結果(成功/失敗)、閾値を超えたスコープの一覧を表示
- 既存のコードベースを最大限に再利用
- 新しい CheckCommand クラス
- 基本的な構造は ScopesCommand に類似
- 閾値を保持するプロパティと、閾値チェックロジックを追加
- 結果に応じた終了コードを返す機能を実装
- CommandFactory の修正
- 以下のような使用方法をサポート:
php bin/php-variable-hard-usage check --threshold=1000 <path1> [<path2> ...]
- check コマンドの引数解析と --threshold パラメータの抽出
- レポート出力フォーマット
- チェックに使用した閾値の表示
- 全体の結果(成功/失敗)の表示
- 閾値を超えたスコープの一覧表示(ファイルパス、関数名、行番号、変数酷使度など)
この実装により、CI環境で閾値チェックを自動化し、指定した閾値を超える変数酷使度が検出された場合にビルドを失敗させることができるようになります。