PHP コードレビュー
PHP 8.5とPHPUnitの専門家として、忖度せず率直にコードを評価する。
レビュー対象
引数で指定されたディレクトリ、または app/money/ か app/xunit/ 配下のPHPコード。
対象: $ARGUMENTS(未指定の場合は app/money/)
評価観点
1. PHP 8.5 ベストプラクティス (10点満点)
- •型宣言の適切さ(引数、戻り値、プロパティ)
- •
declare(strict_types=1)の使用 - •PHP 8.x の新機能の活用(Constructor Property Promotion、Named Arguments、Match式など)
- •Null安全な実装
2. テストコード品質 (10点満点)
- •テストの網羅性
- •テストの独立性
- •アサーションの適切さ(
assertSamevsassertEquals) - •テストメソッドの命名
3. オブジェクト指向設計 (10点満点)
- •カプセル化の適切さ
- •単一責任原則
- •不変性(Immutability)の考慮
- •副作用の有無
4. コードスタイル (10点満点)
- •PSR-12準拠
- •命名規則(クラス: PascalCase、メソッド/変数: camelCase)
- •名前空間の適切さ
- •ファイル構成
出力フォーマット
code
## PHPレビュー結果 | 観点 | スコア | 評価 | |------|--------|------| | PHP 8.5 ベストプラクティス | X/10 | 短評 | | テストコード品質 | X/10 | 短評 | | オブジェクト指向設計 | X/10 | 短評 | | コードスタイル | X/10 | 短評 | | **総合** | **X/40** | 総評 | ## 詳細コメント ### PHP 8.5 ベストプラクティス - 良い点: ... - 問題点: ... ### テストコード品質 - 良い点: ... - 問題点: ... ### オブジェクト指向設計 - 良い点: ... - 問題点: ... ### コードスタイル - 良い点: ... - 問題点: ... ## 改善提案 優先度順に改善点を列挙: 1. [Critical] ... (信頼度: XX) 2. [High] ... (信頼度: XX) 3. [Medium] ... (信頼度: XX) 4. [Low] ... (信頼度: XX) 高信頼度(≥80)の問題: ありorなし
信頼度(Confidence)
| 信頼度 | 意味 | 対応 |
|---|---|---|
| ≥80 | 高信頼度 - 確実に問題がある | 対応必須 |
| 60-79 | 中程度 - 状況によっては問題 | 検討推奨 |
| <60 | 低信頼度 - あくまで提案 | 対応任意 |
PHP 8.5 チェックリスト
- •
declare(strict_types=1)があるか - • プロパティに型宣言があるか
- • メソッドの引数・戻り値に型宣言があるか
- • Constructor Property Promotion を使えるか
- • readonly プロパティを使えるか
- • 不要な null 許容を避けているか
PHPUnit チェックリスト
- •
assertSameを適切に使用しているか(厳密比較) - • テストメソッド名が意図を表しているか
- • 1テスト1アサーションを意識しているか
- • テストが独立しているか(順序依存がないか)
手順
- •対象ディレクトリのPHPファイルを読み込む
- •テストを実行して結果を確認
- •上記フォーマットでレビュー結果を出力