Seit TYPO3 v7 findet der Composer innerhalb von TYPO3 immer mehr Verwendung.
Um einen Einblick in diese zu bekommen und zu erfahren was in der Zukunft geplant ist, hat Helmut Hummel (Twitter: @helmut) auf den T3DD16 einen Vortrag zum Thema Composer und TYPO3 gehalten - Titel des Vortrags: "Composer Composer Composer".
Der Vortrag wurde aufgeteilt in drei Teile:
- Grundlage Composer
- Derzeitige Verwendung in TYPO3
- Zukünftige Verwendung in TYPO3
Der interessanteste Teil hier, ist zu erfahren, was zukünftig für TYPO3 in Bezug auf die Composer-Verwendung geplant ist. Deshalb wird nachfolgend nicht auf die Grundlagen und die derzeitige Implementierung innerhalb von TYPO3 eingegangen. Diese Teile waren vielmehr ein Einblick und eine Einführung des Themas für die anwesenden Zuhörer und können im Internet (auch auf der Webseite von Helmut Hummel: http://insight.helhum.io/) nachgelesen werden.
Zukunftsplanung
Helmut erläuterte vier große Änderungen, die umgesetzt werden könnten. Allerdings weißt er auch darauf hin, dass die Umsetzung dieser Änderungen zeitlich noch unklar ist und erst denkbar für die nachfolgenden TYPO3 Versionen 9-10 seien.
- Subtree Split
TYPO3 beinhaltet bei der Installation einige Systemerweiterungen, die aktiv oder inaktiv mit im System hinterlegt sind. Wird eine dieser Systemerweiterungen benötigt, so hat man diese zu aktivieren. Im Gegensatz zu nicht Systemerweiterungen können diese allerdings nicht aus dem System entfernt werden. Geplant ist hier, die Systemerweiterungen als Metapackes² bereitzustellen und diese über die Composer-Einstellungen zu berücksichtigen. So kann man auf nicht benötigte Systemerweiterungen/Features verzichten und die Installation schlank halten - frei nach dem Motto: "I only get the stuff I want to get". Dies würde zudem ein Benefit in Bezug auf Performance und Sicherheit darstellen. - Entfernung der PackageStates.php
Die PackageState.php beinhaltet den Status (aktiv/inaktiv) jeder Erweiterung. Die Überlegung ist, die PackageState.php zu entfernen. Dies sei allerdings kein leichtes Unterfangen und der erste Schritt wäre hier, die PackageStates.php im "Build-Process" über den Composer zu generieren und somit bereitzustellen, wobei nur die notwendigen Status der aktiven Erweiterungen berücksichtigt werden. - Entfernung des Extension Managers
Sofern TYPO3 über den Composer installiert wurde, schaltet sich das System in den sogenannten "Composer-Mode". Über diesen Modus ist es nicht möglich, Erweiterungen über den Extension-Manager herunterzuladen oder zu installieren. Lediglich das Aktivieren und Deaktivieren der Erweiterungen ist möglich. Möchte man eine neue Erweiterung im System etablieren, so ist diese über den Composer einzurichten. Dieses Vorgehen macht den Extension Manager wie wir ihn heute kennen überflüssig. - Kein "Classic Mode" - Nurnoch "Composer Mode"
TYPO3 lässt sich derzeitig über zwei Arten installieren: Klassisch und über den Composer. Klassisch heißt, dass TYPO3 heruntergeladen und "händisch" eingerichtet wird. Symlinks werden händisch gesetzt, die Struktur händisch eingerichtet etc. Bei der Verwendung des Composer-Modes wird TYPO3 sowie benötigte Abhängigkeiten automatisch per Composer eingerichtet.
Zum Abschluss weist Helmut noch auf seine Distribution auf GitHub (https://github.com/helhum/TYPO3-Distribution) hin. Innerhalb dieser Distribution kann man sich die Verwendung vom Composer anschauen und evtl. Inspirationen für seine eigenen Projekte holen. Wichtig: Diese Distribution entspricht hierbei seinen Präferenzen bzgl. eines Projektaufbaus.
Fazit
Man kann auf die weitere Verwendung des Composers innerhalb von TYPO3 gespannt sein. Es wird zwar eine weitere Abhängigkeit innerhalb von TYPO3 generiert, nämlich die zum Composer, erhöht so allerdings die Sicherheit und die Geschwindigkeit des Systems und gestaltet dieses zusätzlich modularer. Auch wird durch den Composer-Mode die Installation und Wartung einfacher.
Ein Contra in meinen Augen ist, dass die Einstiegshürde für Entwickler in TYPO3 hier weiter erhöht wird, da Kenntnisse im Umgang mit Packages und dem Composer gefordert sind.
Nicht dabei gewesen? Kein Problem! Die Talks der T3DD16 in der Haupthalle wurden live ins Internet "gestreamt" und sind auf https://www.youtube.com/user/typo3 einsehbar. So kann man sich ganz entspannt zurücklehnen und Helmut Hummels Talk verfolgen.
² Metapackages sind "Packages" die lediglich eine composer.json Datei enthält, welche mitteilt, wo Composer die Daten findet, welche benötigt werden.