© istockphoto.com/Vextok
Das PSR-7-Middleware-Framework ZendExpressive

Schnell, leicht, expressive


PSR-7? Middleware? Zend\Expressive? Wir haben also einiges vor in diesem Artikel … am Ende jedenfalls werden wir leichtgewichtige Webanwendungen in kürzester Zeit mit dem neuen PSR-7-Middleware-Microframework aufbauen.

Zend\Expressive ist das neue Zugpferd am Zend-Framework-Himmel. Das „PSR-7-Middleware-Microframework“ verspricht den Aufbau von leichtgewichtigen Webanwendungen innerhalb weniger Minuten. Dieser Artikel wagt einen genaueren Blick auf die Möglichkeiten von Zend\Expressive und betrachtet auch den Aufbau von komplexeren Middlewareanwendungen. Zudem wird die Frage erläutert, ob die Tage des MVC-basierten Zend Frameworks nun gezählt sind. Zunächst beschäftigen wir uns aber mit den Grundlagen.

Was bedeutet PSR-7?

Die „PHP Framework Interop Group“ (PHP FIG) [1] hat sich das Ziel gesetzt, Empfehlungen für gemeinsame Standards in der PHP-Welt zu schaffen. Mitglieder der PHP FIG sind unter anderem Vertreter verschiedener PHP-Frameworks wie Aura, CakePHP, Flow, Laravel, Symfony und Zend Framework, von Tools wie Composer, Doctrine oder Phing sowie von Open-Source-Projekten wie Joomla!, Neos, SugarCRM oder Drupal.

Die Standardempfehlungen der PHP FIG werden idealerweise von möglichst vielen Mitgliedern und Nichtmitgliedern unterstützt. Die Implementierung der Standards funktioniert auf freiwilliger Basis, sodass niemand – nicht mal die Mitglieder der PHP FIG – verpflichtet sind, alle Standards in allen Details umzusetzen. Bekannt und bereits weit verbreitet sind die Autoloading-Standards PSR-0 und PSR-4 sowie die Empfehlungen für Code ­Styles, PSR-1 und PSR-2. Weitere Empfehlungen für Standards sind in Vorbereitung.

Eine relativ junge Standardempfehlung ist der PSR- 7-­Standard [2], der im Mai 2015 akzeptiert worden ist. In diesem Dokument werden eine Reihe von Interfaces zur Darstellung von HTTP-Nachrichten, URIs, Server-Requests und Dateiuploads definiert. Vereinfacht gesagt vereinheitlicht PSR-7 den Zugriff auf HTTP-­Nachrichten auf PHP-Ebene. HTTP-Nachrichten (Requests und Responses) bilden das Gerüst der Web­entwicklung (Abb. 1). HTTP-Clients wie Webbrowser oder Tools wie cURL und wget, aber auch die von JavaScript unterstützten XMLHttpRequest generieren HTTP-Requests und versenden diese an den Webserver. Der Webserver wiederum sendet an den Client zurück.

eggert_expressive_1.tif_fmt1.jpgAbb. 1: Grundgerüst der Webentwicklung

HTTP-Requests und -Responses sind seit Langem standardisiert. In der Vergangenheit hat jedoch nahezu jedes PHP-Framework oder CMS eine eigene PHP-Implement...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang