Der PHP Dependency Manager Composer wurde vor einigen Tagen in der Version 2.0 veröffentlich. Hier fasse ich kurz zusammen, was neu ist und was sich für den Webentwickler Alltag ändert.
Composer 2.0 – was ist das?
Um eine Website zu programmieren braucht man in der Regel viele kleine Lösungen für zahlreiche Herausforderungen. Man muss dabei nicht immer das Rad neu erfinden. Man kann stattdessen auf Programme von Dritten (sogenannte Pakete) zurückgreifen. Sobald mehrere Pakete zusammenarbeiten, wird es immer schwieriger, alle Pakete parallel ohne Konflikte miteinander laufen zu lassen. Vor allem, weil diese Pakete wiederum von anderen Paketen abhängen.
{
"name": "mozgiel-theme",
"version": "1.1.5",
"description": "Neues Webprojekt von mozgiel.de",
"author": "Darius Mozgiel",
"dependencies": {
"bootstrap": "^4.0.0-alpha.4",
"browser-sync": "^2.16.0",
"font-awesome": "^4.6.3",
"gulp": "^3.9.1",
}
}
Spätestens wenn man ein Paket aktualisieren will, muss man eigentlich überprüfen, ob es noch mit allen anderen funktioniert. Bei 20-30 Paketen pro Webprojekt kann das natürlich sehr anstrengend sein. Die Lösung lautet hier Dependency Manager. Das ist ein Programm, welches sich um Abhängigkeiten kümmert. Eine praktische Sache also, welche die Installation, Erweiterung und Aktualisierung von Kernsystemen erheblich erleichert.
Was ist neu bei Composer 2.0
Composer wurde komplett auf den Kopf gestellt.
Schnellere Downloads
Das wichtigste Feature ist die Geschwindigkeit. Je nach Framework können die Befehle composer install bzw. composer update schon mal eine Weile dauern. Composer 2.0 führt die Downloads parallel durch, was ohne Zwischenspeicher schon mal doppelt so schnell sein kann.
Packages können auch offline installiert werden
Wenn die Umgebung entsprechend gesetzt wurde und eine composer.lock
Datei vorhanden ist, kann composer install
auch ohne Onlineverbindung die Pakete installieren.
Dies hat allerdings zur Folge, dass Composer 2.0 überhaupt keinen Netzwerkzugriff mehr startet. Schön wäre hier eine Fallback Option, z.B. falls ältere Pakete nicht verfügbar sind oder weil man die Version ohnehin bereits im Cache hat. Das würde die Geschwindigkeit von Composer abermals erhöhen.
Composer 2: Platform Check
Composer führt schon während der Laufzeit einen Systemcheck durch. Sobald der Autoload gestartet wird, wird auch eine platform_check.php
Datei angelegt, die das System auf PHP Version und vorhandene, benötigte Extensions überprüft.
Erschwerter root Zugriff auf composer
Wer die schlechte Angewohnheit hat, composer über root durchzuführen (oder in der Konsole gerade nicht mehr merkt, dass er im su Modus ist), bekommt in Zukunft eine Warnung, dass man Composer 2.0 nicht im root Modus durchführen sollte. Prinzipiell geht es auch weiterhin, jedoch muss man das in Zukunft aktiv bestätigen.
Fazit – schneller & abwärtskompatibel
Die neue Composer Version ist auf den ersten Blick eine tolle Weiterentwicklung. Während vor allem die Geschwindigkeit und der Systemcheck praktische Alltagshelfer für den Webentwickler sind, hat sich an der Grundhandhabung nichts geändert.
Man bekommt also viel Milch für wenig Milch. Denn die neuen Syntaxmöglichkeiten und Befehle sind alle optional. Am grundlegenden Workflow ändert sich nichts. So können also auch die alten composer.json Dateien verwendet werden.