Die neue Paketverwaltung für Contao

Mit Composer lassen sich Pakete und Abhängigkeiten in PHP Software verwalten. Das Composer Projekt wurde Anfang 2011 von Nils Adermann und Jordi Boggiano initiiert und erfreut sich seit 2012 wachsender Beliebtheit und Verbreitung. Abgesehen von PEAR, welches nativ auf dem System ausgeführt wird, gab es für PHP über die letzten Jahre hinweg keine vernünftige Paketverwaltung. Composer ist vollständig in PHP geschrieben und lässt sich daher im Gegensatz zu PEAR auch auf restriktiven Systemen (Shared Hoster) verwenden. Zum Composer-Ökosystem gehört unter anderem Packagist, das als primäres Repository für Pakete dient.

Contao Composer Client

Die Integration von Composer in Contao wurde Anfang 2013 von Dominik Zogg und Tristan Lins initiiert. Mitlerweile wurde aus einer einfachen Integration auf Konsolenbasis ein umfangreicher Client mit Integration in das Contao Backend. Um den Composer Client entwickelt sich seit kurzem ein entsprechendes Ökosystem. Für den vereinfachten Übergang des alten ER2 betreibt die CCA ein Repository, über das die alten Legacy Pakete mit Composer installiert werden können. Für die Zukunft ist neben Packagist ein eigenes Repository für freie und auch kostenpflichtige Pakete geplant. Auch ein Facelifting des Client steht noch auf dem Programm.

Contao Composer Plugin

ehemals Contao Composer Installer

Das Composer Plugin stellt alle notwendigen Erweiterungen für Composer bereit, um Composer erfolgreich mit Contao einzusetzen. Das Plugin sorgt unter anderem dafür, das Composer die aktuell installierte Contao Version kennt und es fügt die zusätzlichen Contao Repositories hinzu.

Contao Repository

Zur Zeit gibt es noch kein Repository speziell für Contao Erweiterungen. Die CCA arbeitet aber an einem Shop für Contao Erweiterungen, über den freie und kommerzielle Contao Erweiterungen vertrieben werden können. Bis es so weit ist, müssen Anbieter/Entwickler von freien Extensions auf Packagist ausweichen.

Legacy Repository

Um den Übergang vom alten Extension Repository 2 zu Composer zu vereinfachen, betreibt die CCA einen eigenen Packagist Server, der diese Legacy Pakete für Composer aufbereitet und bereit stellt. Leider können mit dieser Technik nur öffentliche Erweiterungen bereitgestellt werden. Private und Kommerzielle Erweiterungen sind über das Legacy Repository nicht verfügbar. Die alten Erweiterungen werden innerhalb von Composer unter dem Vendor contao-legacy/ bereitgestellt. Die bekannte Erweiterung dlstats ist also unter dem Namen contao-legacy/dlstats in Composer verfügbar. Die Synchronisation zwischen ER2 und dem Legacy Repository erfolgt alle 15 Minuten.

Alle helfenden Hände im Überblick

Gesamt

20 Mitwirkende und 1.036 Commits

Composer Client

14 Mitwirkende und 523 Commits

Composer Plugin

13 Mitwirkende und 513 Commits