Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
dirnbauer avatar

Php Modernization

  • 90 installs
  • 33 repo stars
  • Updated July 27, 2026
  • dirnbauer/webconsulting-skills

Modernizes PHP code to 8.1-8.5 features and PSR compliance with PHPStan, Rector, and PHP-CS-Fixer tooling.

About

Modernizes PHP code toward 8.1-8.5 features, PSR/PER-CS compliance, and type safety using PHPStan, Rector, and PHP-CS-Fixer. A developer uses it when upgrading PHP code and enforcing modern standards.

  • PHP 8.1-8.5 features, enums, readonly, property hooks
  • PHPStan, Rector, PHP-CS-Fixer tooling workflow

Php Modernization by the numbers

  • 90 all-time installs (skills.sh)
  • Ranked #45 of 65 PHP & Laravel skills by installs in the Skillselion catalog
  • Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/dirnbauer/webconsulting-skills --skill php-modernization

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs90
repo stars33
Last updatedJuly 27, 2026
Repositorydirnbauer/webconsulting-skills

What it does

Modernizes PHP code to 8.1-8.5 features and PSR compliance with PHPStan, Rector, and PHP-CS-Fixer tooling.

Files

SKILL.mdMarkdownGitHub ↗

PHP Modernization

Agent contract

1. Discover: uv run ${CLAUDE_SKILL_DIR}/scripts/introspect.py (cheap), or verify_php_project.py --summary (full, with agent_actions[]). 2. Drill: ... --check PM-XX per finding. Full output when triaging >3. 3. Apply: uv run ${CLAUDE_SKILL_DIR}/scripts/modernize_loop.py --mode dry-run. Review transcript before applying. 4. References: load on demand; do not pre-load.

Reference routing

NeedRead
PHP 8.0-8.3 baselinereferences/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 configreferences/phpstan-compliance.md
Static analysisreferences/static-analysis-tools.md
PHP-CS-Fixer deprecationsreferences/php-cs-fixer-deprecations.md
DTOs / VOs / inputsreferences/type-safety.md, references/request-dtos.md
Adapter / registryreferences/adapter-registry-pattern.md
Multi-version compatreferences/multi-version-adapters.md
Symfony patternsreferences/symfony-patterns.md
PSR-15 middlewarereferences/psr15-middleware-architecture.md
Doctrine edgesreferences/doctrine-modernization-edges.md
API Platformreferences/api-platform-edges.md
Immutabilityreferences/immutability-boundaries.md
Contracts & invariantsreferences/contracts-and-invariants.md
Mutation testingreferences/mutation-testing.md
Migration planningreferences/migration-strategies.md
PHPUnit 12→13, mock vs stubreferences/phpunit-modernization.md
Multi-agent dispatch hazardsreferences/multi-agent-pitfalls.md

Hard guardrails

  • Never apply readonly to Doctrine entities or mapped-superclasses (embeddables: see references/doctrine-modernization-edges.md).
  • Never run Rector without --dry-run. Invoke vendor/bin/rector directly — composer script aliases can drop ---forwarded flags depending on configuration.
  • Never raise PHPStan level without regenerating + committing the baseline. Shrink, never delete.
  • Never apply blanket final to mock targets or extension points without confirmation.
  • Never edit @generated files or files under var/cache/, vendor/, node_modules/, .Build/.
  • Never git checkout -- files outside your scope in shared trees — use git stash / git diff.
  • Never trust a warm PHPStan cache after vendor change: rm -rf /tmp/phpstan-* var/cache/phpstan first.
  • Never mass-substitute createMockcreateStub — promote to expects(...)->method(...)->with(...).

Migration checklist

  • [ ] declare(strict_types=1) everywhere
  • [ ] @PER-CS, no deprecated aliases
  • [ ] PHPStan ≥9 (treatPhpDocTypesAsCertain: false); 10 for new
  • [ ] PHPat for layer boundaries
  • [ ] Return + parameter types on all methods
  • [ ] DTOs over arrays; backed enums over constants
  • [ ] PSR interfaces in type-hints
  • [ ] #[Override] (8.3+), #[SensitiveParameter] (8.2+), typed constants (8.3+)
  • [ ] readonly on DTOs/VOs/events only
  • [ ] Property hooks (8.4); array_find/any/all (8.4); pipe |> (8.5)
  • [ ] PHPUnit 12+: stubs use createStub, mocks createMock + expects (no self::any() in 13)
  • [ ] Rector withComposerBased(symfony: true) (per-version SymfonySetList::SYMFONY_* are @deprecated)

---

Credits & Attribution

This skill is based on the excellent work by [Netresearch DTT GmbH](https://www.netresearch.de/).

Original repository: https://github.com/netresearch/php-modernization-skill

Copyright (c) Netresearch DTT GmbH — Methodology and best practices (MIT / CC-BY-SA-4.0)

Special thanks to Netresearch DTT GmbH for their generous open-source contributions to the TYPO3 community, which helped shape this skill collection. Adapted by webconsulting.at for this skill collection

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.