API-Änderungen und viele neue Funktionen

Zend Expressive 3.0.0RC1 veröffentlicht
Keine Kommentare

Der erste Release Candidate für Zend Expressive 3 ist da. Waren da nicht gerade erst Alpha-Builds? Ja. Die Beta-Phase wurde übersprungen; dafür bringt der Release Candidate noch mal einige Änderungen mit.

Seit 2016 bietet das Zend Framework neben dem klassischen MVC-Layer auch die leichtgewichtige Alternative Zend Expressive, die auf einige standardisierte Komponenten setzt und die gesamte Anwendung auf Middleware-Basis aufbaut. Mit dem vorliegenden Release Candidate ist man der Zend Expressive Version 3.0 wieder ein Stückchen näher gerückt. Als Zieldatum für das finale Release wurde der 15. März 2018 benannt.

Wie Projektleiter Matthew Weier O´Phinney im Zend Framework Blog berichtet, sei man mit den letzten Fortschritten in der Entwicklung von Zend Expressive 3 näher an einem Release-Candidate als einer Beta-Version gewesen. Deshalb sei man direkt von der Alpha-Version zum Release Candidate gesprungen und habe die Beta-Phase übersprungen.

Änderungen zwischen Alpha 3 und dem Release Candidate

Eine Reihe wesentlicher Änderungen wurde in den Expressive-Kernpaketen veröffentlicht. Zu den Änderungen gehört, dass alle Klassen, die zuvor eine Psr\Http\Message\ResponseInterface-Instanze akzeptiert haben (mit Ausnahme von Zend\Stratigility\Middleware\DoublePassMiddleware), jetzt PHP callable akzeptieren, das eine ResponseInterface-Instanz erzeugen kann. Die einfachste Form, die zend-diactoros verwendet, würde wie folgt aussehen:

function  ()  {
return new Response();
}

Indem die Klassen geändert wurden, um eine abrufbare Factory zu erstellen, werden laut dem Bericht im Zend Blog mehrere Dinge erreicht:

  • Der ResponseInterface Service kann jetzt sicher freigeben werden und kann in jedem Service wiederverwendet werde, der eine Response liefern muss. Da die Factory immer eine neue Antwort-Instanz zurückgibt, ist die Freigabe der Factory für den ResponseInterface Service sicher.
  • Sobald PSR-17 verfügbar ist, wird es möglich sein eine Response Factory durch eine Schließung zu dekorieren und weiter zu nutzen. Expressive-Anwendungen werden sofort PSR-17-kompatibel sein.

Neuerungen bei der  zend-stratigility und beim zend-expressive-Router

Darüber hinaus wurde an der Framework-Komponente zend-stratigility geschraubt und der zend-expressive-Router wurde massiv überarbeitet. Dabei gab zwei große Änderungen: Routen und Routenergebnisse sind jetzt Middleware, und alle Middleware von Zend Expressive – anders als die LazyLoadingMiddleware – wurde in dieses Paket verschoben. Zudem wurde eine allgemeine Änderung vorgenommen: Das Paket enthält jetzt eine ConfigProvider class und stellt sie zend-component-installer zur Verfügung. Somit wird ermöglicht, factorys für die Middleware bereitzustellen, so dass die Middleware sofort in den Expressive-Anwendungen verwendet werden kann.

Auch im zend-expressive package wurde eine große Anzahl von Änderungen vollzogen. Die Mehrzahl bezog sich auf den Export von Funktionen in relevantere Pakete. Weitere Änderungen wurden vorgenommen, um eine Abwärtskompatibilität mit früheren Alpha-Releases sowie mit v2-Releases zu gewährleisten. Das zend-expressive package enthält API-Verhaltensänderungen und wurde zudem mit neuen Klassen und zwei neuen factorys ausgestattet.

Erweiterung des zend-expressive-tooling

Darüber hinaus wurde das zend-expressive-tooling erweitert, um sowohl Migrationswerkzeuge als auch Werkzeuge bereitzustellen, die die Entwicklung produktiver machen sollen.

Alle aufgeführten Änderungen sind im Zend Blog zusammengefasst.

Unsere Redaktion empfiehlt:

Relevante Beiträge

X
- Gib Deinen Standort ein -
- or -