Roadmap noch ohne Release-Datum

Zend Framework 3: ein Status-Update
Kommentare

Derzeit arbeitet das Entwicklerteam vom Zend Framework fleißig an der kommenden Major-Version Zend Framework 3. Noch im Frühling hieß es, dass ein Release für das dritte Quartal 2015 angepeilt würde. Das ist nun bereits seit einiger Zeit vorüber und noch ist ein definitives Release-Datum für die neue Framework-Version nicht bekannt. Dafür gab es nun zumindest ein Status-Update zum Stand der Entwicklung von Zend Framework 3

Dabei betont Matthew Weier O’Phinney direkt zu Beginn seines Blogposts, dass Zend Framework 3 nicht nur ein neues Release, sondern insbesondere auch eine umfangreiche Initiative ist, die verschiedene Projekte und Strategien umfasst. So ist der MVC auch nur ein Teilbereich des gesamten Plans, den das Entwicklerteam für die Zukunft von Zend Framework hat. Ergänzt wird er von Komponenten, PSR-7 und Middleware.

Aufteilung der Komponenten

Ursprünglich sollte Zend Framework eine Komponenten-Library sein, die auch ein MVC-Framework mit ausliefert. Was allerdings als gute Idee anfing, führte schnell dazu, dass der MVC das dominierende Feature wurde und der Code vor allem mit dem Fokus auf die gemeinsame Nutzung von Komponenten und Framework geschrieben wurde – und die Stand-Alone-Nutzung der Komponenten in den Hintergrund rückte.

Eines der Hauptziele der ZF3-Initiative war es daher, die Komponenten in eigene Repositories mit eigenen Entwicklungszyklen aufzuteilen, während das Haupt-Zend-Framework-Repository zu einem Meta-Package umgewandelt wurde. So können individuelle Komponenten als Dependencies definiert werden, ohne das tatsächlicher Code ausgeliefert wird. Diese Aufteilung bietet einige Vorteile, nicht zuletzt soll sie, so erklärt Weier O’Phinney

help us improve components more granularly, expand the number of contributors, and accelerate component development.

Die Aufteilung der Komponenten wurde bereits im Mai mit der Veröffentlichung von Zend Framework 2.5.0 erreicht.

PSR-7, Middleware und Expressive

Im Gegensatz zu anderen Sprachen wie Python oder Ruby bietet PHP von Haus aus keine Möglichkeit, HTTP-Messages zu modellieren. Die meisten Frameworks ermöglichen darum auf die eine oder andere Art und Weise Message Abstraction, allerdings unterscheiden sie sich je nach gewähltem Framework – und manchmal auch zwischen einzelnen Versionen selbiger. Darum soll PSR-7 Message Abstraction standardisieren, sodass Code, der auf PSR-7 abzielt bei jedem Framework oder Projekt wiederverwendet werden kann, das dies ebenfalls unterstützt.

Auch PSR-7 wurde im Mai akzeptiert, sodass für Zend Framework zwei neue Komponenten veröffentlicht werden konnten: Diactoros und Stratigility. Dabei spielt insbesondere auch Middleware eine wichtige Rolle. Mit Expressive arbeitet das Zend-Framework-Team derzeit auch an der Veröffentlichung eines neuen Microframeworks, mit dem PSR-7-Middleware-Applikationen erstellt werden können.

Expressive baut dabei auf Stratigility auf und soll es Entwicklern ermöglichen, nur die Komponenten zu wählen, die wirklich benötigt werden. Dafür bringt das Microframework einige nützliche Features mit sich, zum Beispiel Typehinting gegen container-interop, ein RouterInterface oder ein TemplateRendererInterface, mit dem Entwickler nach der Installation von Expressive direkt mit der Entwicklung loslegen können.

Stellen Sie Ihre Fragen zu diesen oder anderen Themen unseren entwickler.de-Lesern oder beantworten Sie Fragen der anderen Leser.

Und was ist nun mit Zend Framework 3?

Spricht man von Zend Framework 3 meint man meist das MVC-Framework, während die Neuerungen bei PSR-7, Middleware und den Komponenten oft eher im Hintergrund stehen. Tatsächlich ist das aber, so sagt Weier O’Phinney, ein Irrglaube. So wird, im Gegensatz zum Übergang von Zend Framework 1 zu 2, diesmal nur wenig am MVC geändert. Im Vordergrund stehen dabei vor allem die Themen Performance und Interoperabilität.

Zu den größten Herausforderungen zählt dabei die Performance des zend-servicemanager und des zend-eventmanager sowie die Möglichkeit, PSR-7-Middleware zu verteilen. Auch die Reduzierung von Dependencies wird dabei angestrebt – insbesondere, weil das Framework-Repository derzeit noch jede Zend-Framework-Komponente benötigt.

Dafür sollen die Bedingungen von zend-mvc, des Framework-Repositories und des Skeletts geändert werden, was dafür sorgt, dass Dependencies, die bisher angenommen wurden, nun manuell zu bestehenden Applikationen hinzugefügt werden müssen. Problematisch ist auch die Registration von Abstract Factories oder Plugin-Managern; einen konkreten Plan für den Umgang damit gibt es derzeit allerdings noch nicht.

Roadmap und Release-Datum

Weier O’Phinney erklärt in seinem Blogpost, dass man seit März bereits einen deutlichen Fortschritt bei der Entwicklung von Zend Framework 3 und mit der ZF-Initiative verbundenen Neuerungen gemacht habe. Allerdings stehen noch einige Punkte aus, die vor dem Release bearbeitet werden müssen.

Dazu zählt etwa die Veröffentlichung von Expressive als Stable-Release, Änderungen an zend-mvc oder die Frage, welche Komponenten als Core für den MVC beziehungsweise das Framework angesehen werden sollten. Darum könne man auch noch kein genaues Release-Datum für Zend Framework 3 nennen:

For a number of considerations, we cannot at this time create a date-based roadmap; we will do releases when code is ready and meets the project quality guidelines.

Immerhin will man die User künftig öfter mit neuen Informationen zum Status der Framework-Entwicklung versorgen; gleichzeitig ruft Weier O’Phinney dazu auf, sich mithilfe von Feedback an der Weiterentwicklung zu beteiligen. Abschließend betont er zudem:

We’re very excited about the Zend Framework 3 initiative. It’s a change in direction for the framework, returning to its roots as a component library first, which happens to also provide a full-stack framework.

Aufmacherbild: Red pushpin on a tourist map for travelling von Shutterstock / Urheberrecht: Anneka

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -