← Zurück zum Katalog

Skill · Version 1.0.0

PHP- und Composer-Updates

Aktualisiert PHP-Abhängigkeiten innerhalb realer Laufzeit- und Ökosystemgrenzen mit gezielten Composer-Lockfileänderungen.

composer-php-upgrades

Entdecke, wie der Skill hilft

Wann ist der Skill hilfreich?

Nutze dies für PHP-Paketupdates, die mit deiner produktiven Laufzeit kompatibel bleiben müssen.

Wobei hilft er dir?

  • Vergleicht tatsächliche PHP- und Erweiterungsversionen mit Composer-Plattformvorgaben.
  • Diagnostiziert Abhängigkeitsblocker und aktualisiert nur die vorgesehene gekoppelte Paketfamilie.
  • Prüft Lockfile, Autoloading, Frameworkkonfiguration und betroffene Analysewerkzeuge.

Das könntest du fragen

Plane ein Laravel-Paketupdate für unsere produktive PHP-Version ohne Umgehung der Plattformanforderungen. Prüfe den vorgeschlagenen Abhängigkeitssatz mit den tatsächlichen PHP-Erweiterungen. Benenne blockierende Versionsgrenzen und teste nach der Installation den betroffenen Anwendungspfad.

Ausführliche Dokumentation

Hier findest du die ursprüngliche Anleitung, Beispiele und Prüfschritte des Skills in ihrer Originalsprache.

Details…Weniger anzeigen

Composer & PHP Upgrades

When to Use

Use when upgrading PHP libraries, frameworks (Laravel, Symfony, Doctrine, Filament, Livewire, Pest/PHPUnit, PHPStan/Psalm), or PHP runtime targets via composer.json and composer.lock.

Platform & Constraint Discovery

1. Inspect PHP Runtime vs. config.platform
  • Check both require.php (e.g., "^8.2", "~8.3.0") and config.platform.php in composer.json, alongside Dockerfile / docker-compose.yml / CI matrix PHP versions and required PHP extensions (ext-intl, ext-gd, ext-redis, ext-imagick, ext-pcntl, ext-bcmath, ext-sodium).
  • Warning: config.platform.php tells Composer to emulate a specific PHP version when resolving composer.lock even if the local CLI runs a newer PHP version. Always keep config.platform aligned with the lowest production PHP runtime, and never use --ignore-platform-reqs (--ignore-platform-req=php) to force an incompatible package into composer.lock.
2. Trace Dependency Blockers Before Updating

Use Composer's built-in solver diagnostics before changing constraints:

  • composer why <vendor/package> (depends): Shows which direct or transitive packages require the installed package.
  • composer why-not <vendor/package> <target-version> (prohibits): Shows the exact version constraint chain (PHP version, sibling package, or root composer.json) blocking the upgrade.
  • composer outdated --direct: Lists outdated direct dependencies and indicates semver-safe vs. major updates.

Controlled Update Execution

1. Scoped composer update Commands
  • Never run a bare composer update across the whole project when upgrading a specific library—that recalculates and bumps every unlocked package in composer.lock.
  • Always scope updates to the target package and its coupled dependents:
    • composer update vendor/package --with-all-dependencies (-W)
    • For coupled framework families (e.g., symfony/*, illuminate/*, spatie/*), pass all related packages together: composer update "symfony/*" --with-all-dependencies.
  • Validate manifest integrity with composer validate --strict.
2. Framework & Ecosystem Upgrade Nuances
  • Laravel (laravel/framework):
    • Upgrade coupled first-party packages in lockstep (laravel/sanctum, laravel/horizon, laravel/passport, laravel/cashier, laravel/octane, laravel/pint, nunomaduro/collision, pestphp/pest / phpunit/phpunit).
    • Check composer.json scripts (@php artisan package:discover --ansi, @php artisan vendor:publish), middleware registration (bootstrap/app.php in Laravel 11+ vs app/Http/Kernel.php), Eloquent cast/model signature changes, and published config files (config/*.php).
  • Symfony (symfony/*):
    • Check extra.symfony.require in composer.json (which restricts Symfony Flex recipes and symfony/* component versions!). Updating require without updating extra.symfony.require causes solver failures.
    • Check Symfony Flex recipe diffs (composer recipes, composer recipes:update) for updated bundle configs (config/packages/*.yaml) and DI container deprecations (bin/console debug:container --deprecations).
  • Static Analysis & Tests (phpstan/phpstan, larastan/larastan, vimeo/psalm, phpunit/phpunit, pestphp/pest):
    • PHPUnit major upgrades (e.g., PHPUnit 9 $\rightarrow$ 10 $\rightarrow$ 11) replace docblock annotations (@test, @dataProvider) with PHP 8 attributes (#[Test], #[DataProvider]), tighten phpunit.xml schemas (phpunit --migrate-configuration), and make data provider methods static.
    • When upgrading PHPStan/Larastan, fix newly surfaced type errors in application code rather than bloating phpstan-baseline.neon.
3. Composer Plugins, Patches & Autoloading
  • Check config.allow-plugins when a new plugin package is introduced.
  • If cweagans/composer-patches is used, verify whether each .patch file still applies cleanly or was merged upstream.
  • Always run composer dump-autoload --strict-psr (or --optimize) and verify zero PSR-4 autoloading warnings.

Enthaltene Dateien 1

  • SKILL.md

Über dieses Skill-Paket

composer-php-upgrades

composer-php-upgrades: Aktualisiert Abhängigkeiten und Frameworks mit einem klaren Kompatibilitätsplan, Migrationsschritten und Regressionsnachweisen.

Details…Weniger anzeigen

composer-php-upgrades

composer-php-upgrades: Aktualisiert Abhängigkeiten und Frameworks mit einem klaren Kompatibilitätsplan, Migrationsschritten und Regressionsnachweisen.

Enthält den vollständigen Skill und seine Begleitdateien (1 Dateien). Der genaue, ursprünglich verfasste Anwendungsbereich bleibt unten erhalten.

Ursprüngliche Skill-Beschreibung (Quellsprache)

Use when upgrading PHP and Composer packages, Laravel/Symfony ecosystems, PHP extensions, and runtime platform constraints with strict composer.lock hygiene.

Installiere den Skill, prüfe seine Quelle und Vertrauenseinstellungen und aktiviere ihn für das passende Projekt oder den Agenten.

Voraussetzungen

  • Orqestria auf deinem Computer installiert.