Lerne Coding
Composer 2.0 – die ultimative Paketverwaltung für PHP!
22.07.2019

Composer der Paketmanager für PHP

Inhaltsverzeichnis
[[TABLE OF CONTENTS]]
access_timeGeschätzte Lesezeit ca. Minuten

Composer ist dazu da, Abhängigkeiten (sogenannte Pakete) in PHP zu installieren. Solch eine Software wird als Paketmanager bezeichnet.

Was ist Composer?

Composer ist eine Paketverwaltung und ein Paketmanger für PHP, um Abhängigkeiten für dein PHP Projekt zu laden. Der Vorteil von Composer ist, dass du diese Abhängigkeiten automatisch Updaten kannst und nicht diese Dateien mit deinem PHP Code ausliefern musst, da diese auf dem verwendeten System neu heruntergeladen werden mit dem entsprechenden Befehl.

Composer Übersicht
Composer Übersicht

Composer ist mit einem Autoloader ausgestattet, der alle Pakete aus dem vendor Ordner laden kann. Natürlich kannst du den Autoloader noch um eigene Pakete ergänzen, oder deinen gesamten Code über den Autoloader von Composer laufen lassen.

Über Composer können eigene Pakete verwaltet, neue Pakete heruntergeladen und bestehende können geupdatet werden.

Composer ist seit dem 24. Oktober 2020 in der Version 2.0 verfügbar und wird ab der PHP Version 5.3 unterstützt. Composer 2 hat unter anderem ein deutliches Performance-Update bekommen. In der offiziellen Nachricht zur Veröffentlichung wird von einer Verbesserung von bis zu über 50% gesprochen. Genaue Zahlen werden allerdings nicht genannt, da diese auch stark Projektabhängig ist. Mit der Composer Version 2.2 soll der Support für ältere Version als 7.1.3 definitiv eingestellt werden. Zurzeit ist die Version 2.0.11 aktuell, also etwas Zeit ist definitiv noch hin, bis der Support für PHP 5 eingestellt wird komplett.

Was ist ein Paket?

Ein Paket ist eine Sammlung von Code, mit dem eine bestimmte Methodik implementiert wird. Zum Beispiel gibt es Pakete, um die Spotify API zu nutzen oder Routing zu realisieren. Etwas ähnlich zu den klassischen PHP Extensions, mit dem Unterschied, dass dieser Code in C geschrieben ist und auf dem System installiert wird, wohingegen diese PHP Pakete in PHP geschrieben sind und direkt pro Projekt eingebunden werden und nicht global für die PHP Version auf dem Betriebssystem installiert werden.

Wofür brauche ich Composer?

Composer macht immer dann Sinn, wenn du externe Pakete verwenden willst. Zum Beispiel willst du den PHP Mailer verwenden. Natürlich kannst du dir auch das Repository von Github herunterladen und die Dateien auswählen, die du brauchst. Allerdings hast du dann das Problem, dass bei Updates du wieder händisch alles austauschen musst. Bei Composer hast du den Befehl composer update, um die Pakete direkt updaten zu können.

Ein Vorteil ist ebenfalls, wenn du Composer verwendest, kannst du die nötigen Abhängigkeiten auf deinem Zielsystem neu installieren und musst zum Teil 1000 von Dateien nicht explizit mit übertragen, was bei einige PHP Paketen durchaus vorkommen kann.

Wie kann ich Composer 2.0 Installieren?

Composer zu installieren kann über die Commandline bzw. Terminal erfolgen oder unter Windows auch mit einem .exe-Installer. Um mit der Installation zu starten, solltet ihr prüfen, falls ihr euch nicht sicher seit, ob ihr bereits PHP korrekt installiert habt. Das und die PHP Version könnt ihr abfragen mit php -v, danach wird euch die Version ausgegeben oder ihr erhaltet folgende Meldung.

PHP ist nicht Installiert.
PHP ist nicht Installiert.

Falls der Befehl php nicht vorhanden ist, stimmt etwas mit eurer PHP Installation nicht.

Installation unter Windows

Auf Windows gibt es zwei Varianten der Installation, ich zeige euch hier nur die deutlich einfachere Installation per exe. Dafür ist es ebenfalls wichtig, dass PHP bereits auf eurem Rechner liegt und möglichst auch per php Command erreichbar ist.

Download Seite von Composer

Falls es nicht vorhanden ist, solltet ihr noch eine aktuelle PHP Version installieren.

Wenn PHP nun auf eurem System vorhanden ist, könnt ihr mit der composer-setup.exe fortfahren.

Composer PHP Version Auswählen
Composer PHP Version Auswählen

Im Installationsprozess selber könnt ihr bereits sehen, ob eine PHP Version erkannt wird oder nicht. Falls es nicht vorhanden ist, könnt ihr einfach den Pfad zu eurem PHP Verzeichnis noch einmal anpassen, oder ihr schaut noch einmal nach wo eure PHP Verzeichnis abgelegt worden ist. Wenn ihr es unter C:/ abgelegt habt, sollte es eigentlich standardmäßig wie auf meinem Windows 10 Computer erkannt werden.

Nach der Installation kannst du mit dem composer diagnose prüfen, ob die Installation erfolgreich war. Und alles Korrekt konfiguriert ist für dein System.

Composer Diagnose
Composer Diagnose

Installation mit dem Paketmanager unter Linux

Es gibt im Paketmanger von einigen Linux System wie Linux Mint eine Version von Composer, die man so installieren kann. Allerdings ist diese Quelle veraltet und verwendet nicht die offizielle phar weshalb eine Installation über diese weg absolut nicht empfohlen wird.

Das empfiehlt unter anderem auch Jordi Boggiano in diesem Github Issue: https://github.com/composer/composer/issues/9419. Er hat insgesamt die meisten Commits bei dem Composer Repository gemacht, er wird es wissen!

Installation von Composer unter Linux/Unix/MacOS

Die Installation von Composer 2 sieht zurzeit wie folgt aus. Falls die 2 Zeile euch einen Fehler "Installer corrupt" zurückgibt, ist dieser Code nicht mehr aktuell. Gehe auf die Webseite https://getcomposer.org/download/. Dort findest du die aktuelle Version. Der sha384-Hash wird sich bei jeder neuen Version immer ändern. Dieser wird geprüft, damit die heruntergeladen Datei auch die Originaldatei ist und kein Schade Code oder ähnliches eingefügt wird.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Für eine globale Nutzung von Composer müssen wir es nun noch global verfügbar machen. Das geht über den folgenden Befehl unter Unix Systemen:

mv composer.phar /usr/local/bin/composer

Nun kannst du testen, ob Composer korrekt installiert wurde und alles erfolgreich gesetzt wurde. Dafür kannst du den Befehl composer diagnose verwenden!

Im Folgenden wirst du diese Ausgabe erhalten. Dort sollte alles Grün/Gelb Leuchten und natürlich nicht Rot.

Composer Diagnose Mac
Composer Diagnose Mac

Installation mittels Homebrew auf MacOS

Auf MacOS kannst du auch einen Paketmanager benutzten. Diesen musst du aber zuerst installieren. Mehr Informationen dazu findest du hier.

Um Composer nun mittels Homebrew installieren zu können, musst du nur folgenden Befehl ausführen:

brew install composer

Mittels des Befehls composer diagnose kannst du wieder prüfen, ob alles korrekt installiert wurde und läuft.

Mehr Informationen zu Homebrew findest du in dem folgenden Artikel: Paketmanager für MacOS, das ist Homebrew!

Von Composer 1.X zu Version 2 updaten

Je nach Version 1.X kannst du den folgenden Command nutzen. Dieser bringt dich zur aktuellsten Version von Composer.

composer self-update

Wie ich oben bei dem Abschnitt zum Linux Paketmanager schon geschrieben habe, sollte man diese Variante nicht verwenden. Zum Beispiel war bei mir trotz 1.8er Version der self-update Befehl nicht vorhanden. Allerdings hab ich ihn auch eben mit 1.7 auf einem anderen System ohne Probleme ausführen können.

In diesem Fall muss du die Version, die du über den Paketmanager installiert hast, erst entfernen und dann eine reguläre Installation durchführen.

Wo finde ich Pakete für Composer?

Es gibt eine offizielle Seite für Composer Pakete. Das ist Packagist, des Weiteren verwende ich oft auch GitHub zur Suche der großen Parket, die etwas von sich halten. Die schreiben auch dort die entsprechenden Composer Befehle für die Installation hin.

Thema der Tabelle "Interessante Pakete "

Hier findest du einige interessante Pakete für Composer, die wir dir schon vorgestellt haben auf HelloCoding.de

Name Beschreibung
PHP Dot Env Mit PHP Dot Env kannst du eine .env Datei erstellen und entsprechend einlesen.
Spotify Web API Um die Spotify Web API anzusteuern, gibt es ein entsprechendes Paket.
PHP Mailer Das Standardpaket um E-Mails unter anderem über SMTP zu versenden, ist PHP Mailer.

Wie installiere ich Pakete mit Composer?

Um Pakete bei Composer installieren zu können, benötigst du folgenden Befehl:

composer require <paketname>

Alternativ kannst du eine composer.json erstellen und dann den folgenden Befehl ausführen. Am einfachsten ist es allerdings, das erste Paket über den require Befehl zu erstellen, da Composer dann die composer.json selbst erstellt.

composer install

So kann zum Beispiel eine composer.json mit mehreren Abhängigkeiten aussehen:

{
    "require": {
        "php-curl-class/php-curl-class": "^8.3",
        "bramus/router": "~1.3",
        "twig/twig": "^2.0",
        "claviska/simpleimage": "^3.3",
        "paquettg/php-html-parser": "^1.7",
        "katzgrau/klogger": "dev-master",
        "nochso/html-compress-twig": "^2.0",
        "aptoma/twig-markdown": "^3.0",
        "erusev/parsedown": "^1.7",
        "chrisjean/php-ico": "^1.0"
    }
}

Wie kann ich installierte Pakete in PHP einbinden?

Als Startdatei ist es üblich, eine index.php zu erstellen. Als erste Zeile wird auf den Autoloader von Composer verwiesen.

require __DIR__ . '/vendor/autoload.php';

Nachdem du nun den Autoloader hinzugefügt hast, kannst du auf deine Pakete zugreifen und mit diesen arbeiten.

Schlusswort

Danke fürs Lesen des Artikels über die Paketverwaltung mit Composer. Ich hoffe, dieser Artikel hat dir weitergeholfen.

Bildquelle - Vielen Dank an die Ersteller:innen für dieses Bild
Kommentare zum Artikel
Peter schreibt ... Kommentar vom 26.07.2023
Großartig

Deine Seite ist ein Mekka für jeden Einsteiger in das Universum der Progammierung. Danke für Deine Mühe!

Mögen dir die Götter der Bits und Beytes immer gewogen sein.

Grüße, Peter

Antworten
Peter
Antwort von Felix Schürmeyer Kommentar vom 26.07.2023
Vielen Dank!

Vielen Dank für deinen Kommentar Peter!

Gruß, Felix

Felix Schürmeyer
Kommentar schreiben

Vom Autor Empfohlen
close