Leidenschaftliche Web-Entwicklerin.
Composer ist ein Open Source Paketmanager für die Skriptsprache PHP. Damit lassen sich Abhängigkeiten (eng.: Dependencies) installieren. Composer wurde im Jahr 2012 von Nils Adermann, Jordi Boggiano und Mitwirkenden der GitHub-Community ins Leben gerufen und steht unter der MIT-Lizenz. Die Anwendung findet sich weiterhin auf GitHub und wird dort auch weiterentwickelt.
Inhaltsverzeichnis
Spricht man über Softwareentwicklung, spricht man auch immer gleichzeitig von Automatisierung. Der Wunsch, repetitive Aufgaben zu automatisieren steckt tief im Wesen der Softwareentwicklung. Daraus hat sich die bekannte Abkürzung DRY entwickelt: Don’t Repeat Yourself. Damit ist gleichzeitig auch gemeint, die Arbeit anderer nicht zu wiederholen.
Dieser Ansatz kann als grundlegende Intention für Bibliotheken und Pakete verstanden werden. Bibliotheken und Pakete dienen dazu, bestimmte Module eines Programmes bereitzustellen. In Open Source Projekten können dutzende Entwickler Bibliotheken zur Verfügung stellen. Dabei ist es egal, ob sie dies im Namen einer Firma oder als Privatperson machen. In proprietären Anwendungen wird dies meist von dem Entwickler-Team des Urhebers realisiert. Das Resultat bleibt jedoch gleich: Eine große Anzahl an bereits fertigen Modulen, welche man für die Entwicklung seines eigenen Programmes verwenden kann.
Composer erleichtert den Zugriff auf solche Pakete und Bibliotheken. Dazu wird standardmäßig ein Package Repository namens Packagist verwendet. Es vereint verschiedene PHP-Pakete und stellt sie dem Paketmanagement-Programm Composer zur Verfügung. Es lassen sich jedoch auch eigene, zum Beispiel private, Repositories einbinden.
Webprojekte werden immer komplexer. Egal ob durch die Anforderungen, oder weil viele verschiedene Komponenten verwendet werden. Dadurch entsteht zugleich ein hoher Aufwand beim Verwalten dieser Komponenten. Hier schafft Composer Abhilfe:
Mit Composer lassen sich PHP-Pakete und Bibliotheken ganz leicht installieren, aktualisieren und auch wieder löschen. Zu beachten gilt, dass nur solche Pakete aktualisiert oder gelöscht werden können, die zuvor über Composer installiert wurden. Sollte also eine Bibliothek manuell hinzugefügt worden sein, kann diese nicht von Composer abgedeckt werden.
Bei Composer handelt es sich um ein Kommandozeilen-Programm. Mit den Kommandozeilentools lassen sich alle wichtigen Aktionen ausführen, wie beispielsweise composer install
. Mit diesem Befehl lassen sich die gewünschten Pakete und Bibliotheken installieren, welche in der composer.json
-Datei vorher definiert wurden. Im Hauptverzeichnis des Projekts wird ganz einfach die composer.json
angelegt. Die Datei kann in etwa so aussehen:
{ "require": { "vendor/library": "version" } }
Ganz praktisch ist in der Kombination auch die composer.lock
-Datei, welche von Composer automatisch angelegt und verwaltet wird. In dieser Datei befinden sich alle aktuellen Versionen aller Pakete in einer Art Momentaufnahme. Die composer.lock
-Datei spiegelt wider, welche Version welches Paket zum aktuellen Zeitpunkt hat, und wird auch entsprechend aktualisiert. Die composer.json
hingegen stellt nur die Versions-Restriktion dar, in Form von Mindestanforderungen oder Maximalanforderungen.
Auch eignet sich der Paketmanager hervorragend im Zusammenspiel mit WordPress. Um WordPress-Core, die Themes und Plugins zu verwalten und bereitzustellen, ist hoher manueller Aufwand nötig. Mit Composer lassen sich die WordPress-Module ganz leicht installieren, aktualisieren und auch wieder löschen – je nach Bedarf. Um Composer im WordPress-Bereich lauffähig zu bekommen, muss dafür zuerst aber das Package Repository ausgetauscht werden. Um alle wichtigen Pakete unter WordPress zu erhalten, benötigt man WPackagist. Dafür muss in der composer.json
folgende Änderung erfolgen:
{ "repositories":[ { "type":"composer", "url":"https://wpackagist.org" } ] }
Wie man sich nun vielleicht denken kann, birgt die Verwendung von Composer unter WordPress ein Risiko. Über das Admin Panel kann ein Administrator zusätzliche WordPress-Plugins per Hand installieren. Dies kann dafür sorgen, dass Composer nicht mehr synchronisiert ist. Die hinterlegten Versionen sind damit gegebenenfalls nicht mehr kompatibel. Leider gibt es noch keine elegante Lösung für dieses Problem. Als Admin der Webseite ist darauf zu achten, keine Installationen über das WordPress Admin Panel durchzuführen.
Während die Installation von WordPress über Composer nicht der Norm entspricht, ist es für die Entwickler von WordPress-Plugins hingegen relativ üblich, Composer für deren Abhängigkeiten zu verwenden. So bietet ein WordPress-Plugin seine eigene composer.json
-Datei an, welche wiederum Abhängigkeiten für das Plugin definiert.
Solche Konflikte können natürlich auch entstehen, wenn mehrere Personen an einem Projekt entwickeln. Gibt es keine koordinierte Kommunikation, kann es schnell passieren, dass Versionen nicht mehr übereinstimmen. Deshalb lässt sich Composer auch ganz einfach mit Versionierungssoftware wie git
kombinieren. Neben der composer.json
sollte auch die composer.lock
versioniert werden. So werden bei anderen Mitwirkenden die richtigen Paketversionen installiert.
Composer besitzt eine Reihe nützlicher Features um das Verarbeiten und Bearbeiten von Bibliotheken und Paketen zu vereinfachen.
composer install
installieren. Mit dem Befehl composer update
werden Bibliotheken aktualisiert.composer require
durchgeführt werden.composer.json
beispielsweise angeben, ob Minor-Updates (enthalten meist Bug Fixes) immer installiert werden sollen, dafür aber große Updates (häufig für große Änderungen bekannt, die das eigene Programm lahmlegen können) erst nach einer Überprüfung. So lässt sich kinderleicht die eigene Anwendung verwalten und große Ausfälle durch Updates nahezu vermeiden.composer create-project
lässt sich ganz einfach ein Projekt aus einem gewünschten Paket erstellen. Composer greift dabei auf das hinterlegte Package Repository zurück und sucht nach dem gewünschten Paket. So lassen sich neue Projekte schnell vorkonfiguriert starten. Dabei kann bereits direkt eine Versions-Restriktion angegeben werden. Hier ein Beispiel dafür:composer create-project laravel/laravel my-project-folder '8.*'
composer install
composer.json
.composer require
composer.json
hinzu, sowie alle damit verbundenen Abhängigkeiten.composer create-project
composer update
composer.lock
wird aktualisiert.composer remove
composer search
composer outdated
composer why
composer why-not
composer update --lock
oder composer update nothing
composer.lock
-DateiDer Paketmanager Composer ist ein starkes und hilfreiches Tool zur Verwaltung von Paketen und Bibliotheken. Anstatt aufwendig alle Pakete einzeln zu aktualisieren und zu überprüfen, übernimmt Composer diese repetitive Aufgabe für einen und überprüft gleichzeitig alle wichtigen Abhängigkeiten der Pakete untereinander. Composer lohnt sich bereits bei kleineren Webseiten, aber zeigt sein wahres Potenzial gerade bei großen, komplexen Anwendungen.
Spannende Artikel und Infos zum Thema
Sie benötigen eine WordPress Agentur? Wir stehen als Ihre Experten zur Verfügung. Treten Sie mit uns in Kontakt und vereinbaren Sie ein unverbindliches Beratungsgespräch.
Das Content-Management-System WordPress basiert auf PHP, einer der gängigsten Programmiersprachen im Web. Ohne PHP funktioniert WordPress nicht. Umso wichtiger ist es somit, dass nicht...
mehr lesen
Die Sprache einer Website wird vielfach durch HTML-Tags übermittelt. Diese werden als HTML Sprachcodes bezeichnet und bestehen aus zwei Kleinbuchstaben. Festgelegt werden die HTML...
mehr lesen
Das WordPress Command Line Interface (kurz WP-CLI) bietet für alle, die mit dem Content Management System (CMS) WordPress arbeiten, einige Funktionen und kann dazu...
mehr lesen
Pagebuilder Plugin für WordPress funktionieren nach einem einfachen und zudem komfortablen Prinzip. Kinderleicht kann man damit eine Webseite aufbauen – oft sogar per Drag...
mehr lesen
Was ist Apache? Apache ist ein Open Source Webserver der Apache Software Foundation, welcher kostenfrei downloadbar und quellfrei ist. Da…
Was ist Material Design? Unter dem Begriff Material Design versteht man die Designsprache, die Google nutzt. Dabei kann Material Design,…
Was ist ein Cronjob? Innerhalb eines Betriebssystems können Aufgaben automatisiert ablaufen, diese werden vielfach als Cronjob bezeichnet. Das System gibt…