Composer – Ein Überblick

Composer ist ein Dependancy Manager für PHP. Doch was bedeutet das eigentlich? In diesem Artikel sehen wir uns an, was wir damit machen können, wie uns das helfen kann und wie man Composer benutzt.

Was ist ein Dependancy Manager?

Wenn wir verschiedene, vorgefertigte PHP Bibliotheken in unserem Projekt benutzen hängt unser Projekt von diesen ab, das bedeutet ohne die Bibliothek ist es nicht lauffähig. Genau so können diese aber von weiteren Bibliotheken abhängig sein, sind also wiederum nicht lauffähig ohne sie. Composer kümmert sich darum, diese ganzen Abhängigkeiten aufzulösen und alle benötigten Bibliotheken automatisch in der richtigen Version in unser Projekt herunterzuladen.

 

Composer unter Windows installieren

Die Installation von Composer unter Windows ist ganz simpel:

  1. Lade die Composer-Setup.exe von der Website herunter und führe sie aus
  2. Im Installationsprozess gibst du den Pfad zu deiner php.exe an, diese befindet sich bei XAMPP zum Beispiel im Unterordner php des XAMPP Hauptverzeichnisses
  3. Ab sofort kannst du Composer mithilfe des Kommandozeilentools verwenden. Navigiere einfach in den Ordner deines Projekts und rufe zum Beispiel composer install auf

 

Abhängigkeiten in unserem Projekt festlegen

Benötigen wir nun eine bestimmte Bibliothek in unserem Projekt können wir einfach im Hauptverzeichnis eine Datei mit dem Namen composer.json anlegen. Wie die Dateiendung schon andeutet handelt es sich hierbei um eine Datei im JSON Format. Diese Datei wird Composer durchsuchen, wenn er unsere Abhängigkeiten installiert. Um nun eine bestimmte Bibliothek hinzuzufügen können wir folgenden Code in die Datei schreiben:

Wie wir sehen wird hier einfach ein Objekt mit einem (dem wichtigsten) Key erzeugt: require. Hinter diesem Key steckt ein weiteres Objekt, welches dann die ganzen Abhängigkeiten enthält. Schauen wir uns das doch mal genauer an.

 

Das require Objekt

Das require Objekt einer Composer Datei besteht aus Key – Value Paaren. Jedes Paar stellt eine Abhängigkeit zu einer anderen Bibliothek dar, die dann in unser Projekt geladen wird. Jede Bibliothek kann natürlich weitere Abhängigkeiten besitzen, die automatisch mitgeladen werden.

Der Key besteht aus einem zweigeteilten String. Der erste Teil ist der sogenannte vendor, also quasi der Ersteller der Bibliothek. Dieser wird benötigt, um auch mehrere Bibliotheken mit demselben Namen zu ermöglichen. Der zweite Teil des Strings ist der Name der Bibliothek selbst. Es kann oft vorkommen, dass beide Namen identisch sind.

Der Value unserer Paare stellt die benötigte Version dar. Hier haben wir über Operatoren die Möglichkeit, die Version sehr genau anzugeben. Wir können beispielsweise einfach die genaue Versionsnummer angeben (zum Beispiel „1.5“) oder mit einem Vergleichsoperator eine Mindestversion festlegen (zum Beispiel „>=1.7“). Auch mehrere Vergleichsoperatoren können verwendet werden, um einen Versionsbereich zu erzeugen (zum Beispiel „>1.9,<=2.2“). Möchten wir eine Version aus einem bestimmten Versionsstamm haben wir außerdem die Möglichkeit, den * Operator zu benutzen (zum Beispiel „1.0.*“). Das würde uns beispielsweise die Version 1.0.1, 1.0.2 etc zurückliefern.

 

Abhängigkeiten installieren

Natürlich müssen wir unsere Abhängigkeiten nicht nur festlegen sondern die benötigten Bibliotheken auch herunterladen. Um dies unter Windows zu erledigen öffnen wir einfach das Kommandozeilentool, navigieren in unser Projektverzeichnis und rufen den Befehl composer install auf. Composer hat bei der Installation einen globalen Pfad angelegt, damit dieser Befehl funktioniert. Nun werden die korrekten Versionen heruntergeladen und in den Unterordner vendors kopiert. Für jede Bibliothek wird ein Unterordner mit dem Vendornamen und darin ein Unterordner mit dem Bibliotheksnamen angelegt. Außerdem legt Composer eine Datei namens composer.lock an. Darin wird festgelegt, welche Versionen wirklich installiert wurden. Das ist wichtig, damit nicht an verschiedenen Stellen, wo das Projekt ist (zum Beispiel durch SVN auf mehreren Computern) verschiedene Versionen von Abhängigkeiten heruntergeladen werden in der Entwicklung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*