ECC/docs/ja-JP/rules/php/coding-style.md

41 lines
2.0 KiB
Markdown

---
paths:
- "**/*.php"
- "**/composer.json"
---
# PHP コーディングスタイル
> このファイルは [common/coding-style.md](../common/coding-style.md) を PHP 固有のコンテンツで拡張します。
## 標準
- **PSR-12** のフォーマットと命名規則に従う。
- アプリケーションコードでは `declare(strict_types=1);` を優先する。
- 新しいコードが許す限り、スカラー型ヒント、戻り値の型、型付きプロパティをあらゆる箇所で使用する。
## 不変性
- サービス境界を越えるデータには不変の DTO と値オブジェクトを優先する。
- 可能な場合はリクエスト/レスポンスペイロードに `readonly` プロパティまたは不変コンストラクタを使用する。
- 単純なマップには配列を使用する; ビジネスクリティカルな構造は明示的なクラスに昇格させる。
## フォーマット
- フォーマットには **PHP-CS-Fixer** または **Laravel Pint** を使用する。
- 静的解析には **PHPStan** または **Psalm** を使用する。
- Composer スクリプトをチェックインし、ローカルと CI で同じコマンドが実行されるようにする。
## インポート
- 参照されるすべてのクラス、インターフェース、トレイトに `use` 文を追加する。
- プロジェクトが明示的に完全修飾名を好む場合を除き、グローバル名前空間への依存を避ける。
## エラーハンドリング
- 例外的な状態には例外をスローする; 新しいコードでは隠れたエラーチャネルとして `false`/`null` を返すことを避ける。
- フレームワーク/リクエスト入力をドメインロジックに到達する前に検証済み DTO に変換する。
## リファレンス
スキル: `backend-patterns` でより広範なサービス/リポジトリの階層化ガイダンスを参照してください。