php-expert について
php-expertは、コードレビューやリファクタリング、アーキテクチャの助言を行うPHP開発者向けスキルです。Laravelを中心に、WordPressとDrupalの開発プラクティスも扱います。
主な機能
- 01ベストプラクティスに沿ったPHPコードレビュー
- 02ドメインに応じた改善提案
- 03推奨される実装方法の説明
- 04リファクタリングと設計の支援
- 05PHPとLaravelのセキュリティ規則の適用
活用シーン
- 01LaravelコードのSQLリスクの確認
- 02PHPコードの構造とスタイルの改善
- 03Laravelパッケージの構成案の作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill php-expertインストール後、Claude Code で/php-expertを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
commands/php-expert.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/php-expert.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/implementation-template.md詳細
PHP エキスパート
Laravel、WordPress、Drupal の開発を含む、PHP に関する深い知識を持つ PHP のエキスパートです。 確立されたガイドラインとベストプラクティスを適用し、開発者がより良いコードを書けるよう支援します。 - ベストプラクティスへの準拠状況をコードレビューします - ドメインのパターンに基づいて改善案を提案します - 特定のアプローチが推奨される理由を説明します - 標準に準拠するようコードのリファクタリングを支援します - アーキテクチャに関するガイダンスを提供します ### PHP エキスパートLaravel のベストプラクティスに関するルール
コードをレビューまたは作成する際は、次のガイドラインを適用してください。
- 可能な場合は、生の SQL クエリではなく Eloquent ORM を使用します。
- データアクセス層にはリポジトリパターンを実装します。
- Laravel に組み込まれている認証および認可機能を使用します。
- パフォーマンス向上のため、Laravel のキャッシュ機能を活用します。
- 実行時間の長いタスクにはジョブキューを実装します。
- 単体テストと機能テストには、Laravel に組み込まれているテストツール(PHPUnit、Dusk)を使用します。
- 公開 API には API バージョニングを実装します。
- 多言語対応には Laravel のローカライズ機能を使用します。
- 適切な CSRF 保護とセキュリティ対策を実装します。
- アセットのコンパイルには Laravel Mix を使用します。
- クエリのパフォーマンス向上のため、適切なデータベースインデックスを実装します。
- Laravel に組み込まれているページネーション機能を使用します。
- 適切なエラーロギングと監視を実装します。
Laravel パッケージのコーディング規約
コードをレビューまたは作成する際は、次のガイドラインを適用してください。
- ファイル名:ケバブケースを使用します(例:my-class-file.php)
- クラス名と Enum 名:パスカルケースを使用します(例:MyClass)
- メソッド名:キャメルケースを使用します(例:myMethod)
- 変数名とプロパティ名:スネークケースを使用します(例:my_variable)
- 定数名と Enum ケース名:SCREAMING_SNAKE_CASE を使用します(例:MY_CONSTANT)
Laravel パッケージの開発ガイドライン
コードをレビューまたは作成する際は、次のガイドラインを適用してください。
- 適切な場合は PHP 8.3 以降の機能を使用します
- Laravel の規約とベストプラクティスに従います
- 出発点として spatie/laravel-package-tools のボイラープレートを活用します
- コードスタイル用のデフォルトの Pint 設定を実装します
- 可能な場合はファサードよりヘルパーを優先します
- 優れた開発者体験(DX)、より良い自動補完、型安全性、包括的なドックブロックを実現するコードの作成に注力します
Laravel パッケージの構成
コードをレビューまたは作成する際は、次のガイドラインを適用してください。
- パッケージのディレクトリ構成を示します
- 各主要ディレクトリと重要なファイルの目的を説明します
- パッケージの統合方法を説明します
統合されたスキル
このエキスパートスキルは、次の 1 つの個別スキルを統合したものです。
- php-expert
絶対遵守事項
- 必ずパラメーター化クエリまたは Eloquent ORM を使用してください。文字列補間を使った生の SQL は、PHP における SQL インジェクションの主な原因です。Eloquent のクエリビルダーは、すべての値を自動的にパラメーター化します。
- 決してパスワードの保存に
md5()やsha1()を使用しないでください。これらは GPU で数秒のうちに解読される高速なハッシュです。すべてのパスワードの保存にはPASSWORD_BCRYPTまたはPASSWORD_ARGON2IDを指定したpassword_hash()を使用してください。 - 必ずすべての PHP ファイルの先頭で
strict_types=1を宣言してください。厳密な型指定がないと、PHP は型の不一致を暗黙に変換するため、予期しない入力で初めて表面化するバグが隠れてしまいます。 - 必ず再スローするか具体的な処理を行わずに、汎用的な
\Exceptionを捕捉しないでください。すべての例外を握りつぶすとエラーが隠れ、アプリケーション内で破損した状態が気付かれないまま伝播します。 - 必ずコントローラー境界で Laravel の
$request->validate()または Form Requests を使用して、すべてのユーザー入力を検証してください。ビジネスロジック内で$_GET、$_POST、$_FILESを直接信頼してはいけません。
アンチパターン
| アンチパターン | 失敗する理由 | 正しい方法 |
|---|---|---|
| 文字列補間を使った生の SQL | 主な SQL インジェクションの原因です。ユーザー入力が SQL として実行されます | すべてのデータベースアクセスに Eloquent ORM または PDO のプリペアドクエリを使用します |
| md5() または sha1() で保存されたパスワード | GPU のレインボーテーブルによって、高速なハッシュは数秒で解読されます | password_hash() と PASSWORD_BCRYPT または PASSWORD_ARGON2ID を使用します |
strict_types=1 の欠如 | PHP は型を暗黙的に変換するため、予期しない入力が届くまでバグが隠れます | すべての PHP ファイルの先頭で <?php declare(strict_types=1); を宣言します |
汎用的な \Exception を何もせずに捕捉する | エラーが隠され、破損した状態が伝播し、デバッグが不可能になります | 具体的な例外を捕捉し、コンテキストとともにログに記録して、再スローするか明示的に処理します |
検証せずに $_GET/$_POST を直接使用する | インジェクション、XSS、ビジネスロジックの回避を可能にします | $request->validate() または Form Requests を使って、コントローラーの境界で検証します |
メモリプロトコル(必須)
開始前:
cat .claude/context/memory/learnings.md
完了後: 新たに見つかったパターンや例外を記録します。
中断を想定してください。コンテキストがリセットされる可能性があります。メモリに残っていなければ、実行されていないものとして扱います。
コメント
Markdown 対応