Skip to content

[Mittel] Ausstehende Major-Upgrades: PHPUnit 13, PHPStan 2, Rector 2 (Config aktuell wirkungslos), Monolog-Bundle 4, Migrations-Bundle 4, Predis 3, Encore 6, DataTables 2 #538

Description

@maltehuebner

Problem

composer outdated --direct / npm outdated (Stand 01.07.2026) zeigen mehrere Major-Sprünge, die von den aktuellen Constraints blockiert werden (und daher nicht durch das reine composer update aus #525 abgedeckt sind). Neueste Stable-Versionen per Web-Recherche verifiziert: Symfony 8.1.1 (8.1 seit Ende Mai 2026 — wird von ^8.0 bereits erlaubt und kommt mit dem #525-Update automatisch), PHPUnit 13.2.2 (13.2 vom 05.06.2026).

Paket installiert neueste Hinweis
phpunit/phpunit 9.6.32 13.2.2 9.6.32 ist zudem von CVE-2026-24765 (high, fixed 9.6.33) betroffen; phpunit.xml nutzt noch das 9.3-Schema
phpstan/phpstan 1.12.33 2.2.3 Level 5 + Baseline mit 150 Einträgen (phpstan-baseline.neon), darunter echte Fatals (siehe Bug-Issues)
rector/rector 1.2.10 2.5.2 rector.php:12-14 konfiguriert ->sets([]) — leer. Rector ist installiert, tut aber exakt nichts
symfony/monolog-bundle 3.11.1 4.0.2
doctrine/doctrine-migrations-bundle 3.7.0 4.0.0 sinnvoll zusammen mit dem Migrations-Squash-Issue
predis/predis 2.4.1 3.5.1 wird nur implizit als Redis-Treiber-Fallback genutzt (RedisAdapter::createConnection in src/Air/StationCache/StationCache.php:64, ImportCache); prüfen ob ext-redis in Prod vorhanden
phpdocumentor/reflection-docblock 5.6.6 6.0.3 entfällt ggf. als Root-Require (siehe HTTP-Stack-Issue)
@symfony/webpack-encore 5.3.1 6.0.0 npm
datatables.net-bs5 1.13.11 2.3.8 npm; nur von assets/js/datatables.js genutzt
leaflet-extra-markers 1.2.2 2.0.1 npm

(chart.js 2→4 und font-awesome-EOL sind bereits in #525 erfasst; Hinweis: assets/js/modules/History.js:88-103 nutzt die Chart.js-v2-Achsen-API xAxes/yAxes, die beim 4.x-Upgrade zwingend umgeschrieben werden muss.)

Kontext/Risiko

Die Dev-Toolchain ist zwei bis vier Major-Versionen hinterher; PHPStan 1.x erhält keine Regel-Updates für PHP 8.5, PHPUnit 9 ist EOL und hat eine offene High-CVE. Der leere Rector-Regelsatz bedeutet: das Tool suggeriert Modernisierung, liefert aber keine.

Aufgaben

  • PHPUnit 9.6 → 13.2: phpunit.xml aufs neue Schema migrieren, failOnRisky/failOnWarning beibehalten, ggf. Attribute statt Doc-Annotations; symfony/phpunit-bridge mitheben
  • PHPStan 1.12 → 2.2: zuerst Bug-Issues fixen, dann Baseline neu generieren (Ziel: deutlich unter 150 Einträge), Level schrittweise ≥ 6
  • Rector 1.2 → 2.5 und rector.php mit sinnvollen Sets befüllen (z. B. LevelSetList::UP_TO_PHP_85, Symfony-Sets) oder Paket entfernen
  • monolog-bundle 4, doctrine-migrations-bundle 4, predis 3 einzeln bumpen (Changelogs prüfen)
  • npm: Encore 6, DataTables 2, leaflet-extra-markers 2 (Breaking Changes im Build prüfen, npm run build als CI-Schritt wäre hilfreich)

Abhängigkeiten

#525 (CVE-getriebene Updates innerhalb der Constraints), HTTP-Stack-Issue (phpdoc-parser-Pin), Migrations-Issue.

Quellen

Symfony 8.1 Release · PHPUnit 13 Announcement · PHPUnit Supported Versions

Metadata

Metadata

Assignees

No one assigned

    Labels

    AI-generatedcode-qualityCode-Qualität, statische Analyse, CIdependenciesPull requests that update a dependency filejavascriptPull requests that update Javascript codetestsTestabdeckung und Testqualität

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions