mcpField
P
php-modernization

php-modernization

github.com/dirnbauer開発3399 回インストール14 週間前に更新
リポジトリ

php-modernization について

エージェント向けの PHP モダナイゼーションスキルです。プロジェクトの調査、検出事項ごとの確認、ドライランによる変更手順を案内し、バージョン別資料と移行・分析・テストのガードレールを備えています。

主な機能

  1. 01プロジェクト調査スクリプト
  2. 02検出事項ごとの確認
  3. 03ドライランによる更新ループ
  4. 04PHP バージョン別資料の案内
  5. 05移行とテストのガードレール

活用シーン

  1. 01PHP プロジェクトの近代化作業の評価
  2. 02個別の近代化項目の確認
  3. 03PHP とテストスイートの安全な更新計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dirnbauer/webconsulting-skills --skill php-modernization

インストール後、Claude Code で/php-modernizationを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

checkpoints.yaml
references/
adapter-registry-pattern.md
api-platform-edges.md
contracts-and-invariants.md
core-rules.md
doctrine-modernization-edges.md
immutability-boundaries.md
migration-strategies.md
multi-agent-pitfalls.md
multi-version-adapters.md
mutation-testing.md
php-8.4.md
php-8.5.md
php-cs-fixer-deprecations.md
php8-features.md
phpstan-compliance.md
phpunit-modernization.md
psr-per-compliance.md
psr15-middleware-architecture.md
request-dtos.md
static-analysis-tools.md
symfony-patterns.md
type-safety.md
scripts/
_common.py
introspect.py
modernize_loop.py
verify_php_project.py
verify-php-project.sh
templates/
composer-scripts.json
templates/github-actions/
php-modernization.yml

詳細

PHP のモダナイゼーション

エージェント契約

  1. 検出:uv run ${CLAUDE_SKILL_DIR}/scripts/introspect.py(低コスト)、または verify_php_project.py --summary(完全な情報。agent_actions[] を含みます)。
  2. 詳細確認:検出結果ごとに ... --check PM-XX を実行します。3 件を超える項目をトリアージする場合は、完全な出力を使用します。
  3. 適用:uv run ${CLAUDE_SKILL_DIR}/scripts/modernize_loop.py --mode dry-run を実行します。適用前にトランスクリプトを確認します。
  4. リファレンス:必要に応じて読み込みます。事前に読み込まないでください。

リファレンスの参照先

必要な情報参照先
PHP 8.0~8.3 のベースラインreferences/php8-features.md
PHP 8.4references/php-8.4.md
PHP 8.5references/php-8.5.md
PSR / PER-CSreferences/psr-per-compliance.md
PHPStan の設定references/phpstan-compliance.md
静的解析references/static-analysis-tools.md
PHP-CS-Fixer の非推奨項目references/php-cs-fixer-deprecations.md
DTO / VO / 入力references/type-safety.md、references/request-dtos.md
アダプター / レジストリーreferences/adapter-registry-pattern.md
複数バージョンとの互換性references/multi-version-adapters.md
Symfony のパターンreferences/symfony-patterns.md
PSR-15 ミドルウェアreferences/psr15-middleware-architecture.md
Doctrine の注意点references/doctrine-modernization-edges.md
API Platformreferences/api-platform-edges.md
不変性references/immutability-boundaries.md
契約と不変条件references/contracts-and-invariants.md
ミューテーションテストreferences/mutation-testing.md
移行計画references/migration-strategies.md
PHPUnit 12→13、モックとスタブreferences/phpunit-modernization.md
複数エージェントのディスパッチに関する落とし穴references/multi-agent-pitfalls.md

厳守事項

  • Doctrine のエンティティまたはマップ済みスーパークラスに readonly を適用しないでください(埋め込み可能クラスについては references/doctrine-modernization-edges.md を参照してください)。
  • Rector を --dry-run なしで実行しないでください。vendor/bin/rector を直接呼び出してください。Composer スクリプトのエイリアスは、設定によっては -- で渡したフラグを取り除くことがあります。
  • ベースラインを再生成してコミットせずに、PHPStan のレベルを上げないでください。ベースラインは縮小し、削除しないでください。
  • 確認なしに、モック対象や拡張ポイントに一律で final を適用しないでください。
  • @generated ファイルや、var/cache/、vendor/、node_modules/、.Build/ 配下のファイルを編集しないでください。
  • 共有ツリーで、スコープ外のファイルに対して git checkout -- を実行しないでください。git stash / git diff を使用してください。
  • vendor の変更後に、温まった PHPStan キャッシュを信用しないでください。まず rm -rf /tmp/phpstan-* var/cache/phpstan を実行してください。
  • createMock → createStub の一括置換はしないでください。expects(...)->method(...)->with(...) を使う形に変更してください。

移行チェックリスト

  • すべての場所で declare(strict_types=1)
  • @PER-CS を使用し、非推奨のエイリアスを使わない
  • PHPStan ≥9(treatPhpDocTypesAsCertain: false)。新規の場合は 10
  • レイヤー境界に PHPat を使用
  • すべてのメソッドに戻り値型とパラメーター型を指定
  • 配列より DTO、定数よりバックド enum
  • 型ヒントに PSR インターフェースを使用
  • #[Override](8.3+)、#[SensitiveParameter](8.2+)、型付き定数(8.3+)
  • readonly は DTO / VO / イベントのみに適用
  • プロパティフック(8.4)、array_find/any/all(8.4)、パイプ |>(8.5)
  • PHPUnit 12+:スタブには createStub、モックには createMock + expects を使用(13 では self::any() を使わない)
  • Rector は withComposerBased(symfony: true) を使用(バージョンごとの SymfonySetList::SYMFONY_* は @deprecated)

クレジットと帰属表示

このスキルは、 Netresearch DTT GmbH による素晴らしい取り組みを基にしています。

元のリポジトリー:https://github.com/netresearch/php-modernization-skill

Copyright (c) Netresearch DTT GmbH — 方法論およびベストプラクティス(MIT / CC-BY-SA-4.0)

このスキルコレクションの形成に貢献した、TYPO3 コミュニティへの寛大なオープンソース貢献に対し、Netresearch DTT GmbH に特別な感謝を捧げます。 このスキルコレクション向けに webconsulting.at が改変

コメント