Neos 4.0 und Flow 5.0 laufen auf Beach

Für Neos 4.0 und Flow 5.0 wurden einige Änderungen unter der Haube vorgenommen. Obwohl es einen Review-Prozess gibt und die Änderungen in der Regel von den Mitgliedern des Neos Teams und der Community getestet werden, sind ein paar Fehler durchgerutscht. Das hielt alle davon ab, die neuen Versionen sofort in einer professionellen Hosting-Umgebung mit Redis zu nutzen ...

Ein reibungsloser Migrationspfad

Im Allgemeinen verlief das Upgrade unserer eigenen Website ziemlich reibungslos. Es bestand hauptsächlich darin, neue Composer Abhängigkeiten für alle relevanten Open-Source-Pakete, die wir pflegen, zu deklarieren, ein paar Fusion-Anpassungen vorzunehmen (beachte, dass die alte ".ts2"-Dateierweiterung jetzt ignoriert wird) und dann ... einfach auf unsere Staging-Instanz in Beach zu deployen.

Auf der Seite Beach müssen wir sicherstellen, dass Beach automatisch die Umgebungsvariable FLOW_HTTP_TRUSTED_PROXIES für die neue (nun ja, restriktivere) vertrauenswürdige Proxy-Funktion in Flow 5.0 setzt. Und das sollte es dann gewesen sein - dachten wir.

Alles funktioniert ... außer Redis

Es stellte sich heraus, dass das Frontend unserer Website nur mit einem weißen Bildschirm aufwachte. Es handelte sich jedoch nicht um einen schwerwiegenden Fehler oder ein Hosting-Problem. Karsten und ich fanden heraus, dass Neos eine Null-Byte-Antwort mit einem 200 OK sendete - aber nirgendwo ein Fehler protokolliert wurde. Der Grund dafür war ein kleiner, aber hässlicher neuer Fehler im Redis-Cache-Backend. Das gut gemeinte Hinzufügen eines PHP-Typ-Hinweises verursachte einen Fehler, der von Fusion abgefangen wurde und zu einer leeren Antwort führte, sobald die betreffende Seite im Cache war:

/**
 * TODO: No return type declaration for now, as it needs to return false as well.
 * @param string $value
 * @return mixed
  */
private function uncompress(string $value): string
 {
    if (empty($value)) {
         return $value;
     }
     return $this->useCompression() ? gzdecode($value) : $value;
 }

Siehst du den Fehler? Die Funktion uncompress() hat eine String-Typ-Deklaration für $value, aber wie der TODO-Kommentar besagt, kann es sehr wohl passieren, dass $value falsch ist.

Ende gut, alles gut

Heute Morgen haben wir Flow 5.0.2 veröffentlicht, das die Fehlerbehebung enthält. Wir haben www.flownative.com auf die neue Version umgestellt und ... voilá, alles funktioniert einwandfrei. Wenn du also dein Projekt heute auf Neos 4.0 oder Flow 5.0 aktualisierst, ist auch Beach bereit dafür - viel Spaß!

Du möchtest Neos 4.0 ausprobieren oder aktualisieren, aber deine aktuelle Umgebung unterstützt es nicht? Wie wäre es, wenn du Beach ausprobierst? Wir bieten eine 14-tägige kostenlose Testversion und einen tollen Support direkt von den Leuten, die auch Neos 4.0 herausgebracht haben ;-)

Kommentare

  1. Online poker

    Online poker

  2. irrelevant

    irrelevant

  3. irrelevant

    irrelevant

  4. irrelevant

    irrelevant