Problem
Die Controller „schützen" Routen mit Docblock-Annotationen:
// src/Controller/AnalysisController.php:16-18 (Klasse), 21-23, 43-45, 61-63
/**
* @Feature("analysis_komfortofen")
*/
public function komfortofenAction(...)
ebenso src/Controller/StationController.php:57-59 (@Feature("station_history")).
Installiert ist flagception/flagception-bundle 6.1, dessen einziger Controller-Listener vendor/flagception/flagception-bundle/src/Listener/AttributeSubscriber.php ausschließlich native PHP-Attribute liest ($object->getAttributes(Feature::class, ReflectionAttribute::IS_INSTANCEOF)). Einen Annotation-Reader gibt es nicht mehr, doctrine/annotations ist nicht installiert. Alle fünf @Feature-Annotationen sind damit stillschweigend wirkungslos.
Beweis
config/packages/flagception.yaml setzt analysis_fireworks: false, analysis_komfortofen: false, station_history: false → die Routen müssten 404 liefern. Tatsächlich antworten /komfortofen und /analysis/silvester mit 500 (Controller wird ausgeführt und crasht, siehe Elastica-Issue) statt 404 — der Flag-Check findet nie statt.
Zusätzlicher Flag-Namens-Mismatch
config/packages/flagception.yaml definiert analysis_fireworks_corona: true; der Menülink wird über feature('analysis_fireworks_corona') eingeblendet (templates/Includes/menu.html.twig:74-80).
AnalysisController::coronaFireworksAction (Z. 61–63) ist aber mit @Feature("analysis_fireworks") (= false) annotiert.
- Konsequenz: Bei einer naiven 1:1-Konvertierung zu Attributen würde die einzige verlinkte und funktionierende Analyse-Seite (
/analysis/corona-silvester) plötzlich 404 liefern.
Die Twig-Seite funktioniert korrekt (feature()-Aufrufe in menu.html.twig:59,66,74 und Default/station.html.twig:33 verstecken die Links) — das kaschiert den Bug nur.
Kontext/Risiko
Feature-Flags sind das einzige Gate vor unfertigen/kaputten Seiten. Aktuell sind per Flag deaktivierte Features öffentlich erreichbar; umgekehrt kann man Features nicht mehr per Flag abschalten (z. B. im Incident-Fall). Da drei der „geschützten" Seiten fatale Fehler werfen, ist das direkt produktionsrelevant.
Aufgaben
Abhängigkeiten
Eng verzahnt mit dem Issue „Sechs Routen liefern garantiert HTTP 500"; Erreichbarkeits-/Härtungskontext: #521, #526.
Problem
Die Controller „schützen" Routen mit Docblock-Annotationen:
ebenso
src/Controller/StationController.php:57-59(@Feature("station_history")).Installiert ist
flagception/flagception-bundle6.1, dessen einziger Controller-Listenervendor/flagception/flagception-bundle/src/Listener/AttributeSubscriber.phpausschließlich native PHP-Attribute liest ($object->getAttributes(Feature::class, ReflectionAttribute::IS_INSTANCEOF)). Einen Annotation-Reader gibt es nicht mehr,doctrine/annotationsist nicht installiert. Alle fünf@Feature-Annotationen sind damit stillschweigend wirkungslos.Beweis
config/packages/flagception.yamlsetztanalysis_fireworks: false,analysis_komfortofen: false,station_history: false→ die Routen müssten 404 liefern. Tatsächlich antworten/komfortofenund/analysis/silvestermit 500 (Controller wird ausgeführt und crasht, siehe Elastica-Issue) statt 404 — der Flag-Check findet nie statt.Zusätzlicher Flag-Namens-Mismatch
config/packages/flagception.yamldefiniertanalysis_fireworks_corona: true; der Menülink wird überfeature('analysis_fireworks_corona')eingeblendet (templates/Includes/menu.html.twig:74-80).AnalysisController::coronaFireworksAction(Z. 61–63) ist aber mit@Feature("analysis_fireworks")(=false) annotiert./analysis/corona-silvester) plötzlich 404 liefern.Die Twig-Seite funktioniert korrekt (
feature()-Aufrufe inmenu.html.twig:59,66,74undDefault/station.html.twig:33verstecken die Links) — das kaschiert den Bug nur.Kontext/Risiko
Feature-Flags sind das einzige Gate vor unfertigen/kaputten Seiten. Aktuell sind per Flag deaktivierte Features öffentlich erreichbar; umgekehrt kann man Features nicht mehr per Flag abschalten (z. B. im Incident-Fall). Da drei der „geschützten" Seiten fatale Fehler werfen, ist das direkt produktionsrelevant.
Aufgaben
@Feature("…")-Docblocks in#[Feature('…')]-Attribute umwandeln (Flagception\Bundle\FlagceptionBundle\Attribute\Feature) —AnalysisController(4×),StationController(1×)coronaFireworksAction→analysis_fireworks_corona(oder Config-Flag umbenennen), totes/inkonsistentes Flag bereinigenstation_history/analysis_*nach Reparatur (Elastica-Issue) wieder aktiviert werden sollenAbhängigkeiten
Eng verzahnt mit dem Issue „Sechs Routen liefern garantiert HTTP 500"; Erreichbarkeits-/Härtungskontext: #521, #526.