Composer verstehen - Teil 2 - die wichtigsten Befehle

von Marco Simbürger

Composer aktualisieren

Das wichtigste zuerst: Composer sollte man immer aktuell halten. Deshalb immer wieder mal folgenden Befehl ausführen:

$ composer self-update

Projekt erstellen

Mit Composer kann man neue Projekte aus einem bestehenden Paket erstellen. Dies ist identisch zu einem git clone, gefolgt von composer install.
Um ein neues Projekt mit Composer zu erstellen, wird der Befehl create-project verwendet. Man gibt dann das Paket und das Verzeichnis, in dem das Projekt erstellt werden soll an. Man auch eine spezifische Version als drittes Argument angeben, ansonsten wird die neueste Version verwendet.

$ composer create-project contao/managed-edition mein_projekt_ordner '4.6.*'

Paket hinzufügen (composer require)

Der Befehl require fügt der Datei composer.json das neue Paket hinzu und lädt diese, sowie alle Pakete, von der dieses Paket anhängig ist, herunter.

# Neuste Version
$ composer require isotope/isotope-core

# Spezifische Version
$ composer require isotope/isotope-core:2.5.3
$ composer require isotope/isotope-core:^2.0

# Mehrere Pakete gleichzeitig hinzufügen
$ composer require isotope/isotope-core terminal42/contao-leads

Paket aktualisieren (composer update)

Um die neuesten Versionen eines Pakets zu erhalten und die composer.lock zu aktualisieren, wird der Befehl update verwendet.

# Alle Pakete aktualisieren
$ composer update

# Spezifisches Paket aktualisieren
$ composer update isotope/isotope-core

# Mehrere Pakete aktualisieren
$ composer update isotope/isotope-core terminal42/contao-leads

# Alle Pakete vom gleichen Anbieter (vendor)
$ composer update terminal42/*

# Paket(en) und deren Abhängigkeiten aktualisieren
$ composer update --with-dependencies isotope/isotope-core

Paket installieren (composer installieren)

Der Befehl install liest die Datei composer.json aus, löst die Abhängigkeiten auf und installiert diese. Wenn sich im aktuellen Verzeichnis eine composer.lock Datei befindet, verwendet Composer die genauen Versionen von dort aus. Dadurch wird sichergestellt, dass jeder die gleichen Versionen erhält. Wenn es keine composer.lock Datei gibt, erstellt Composer eine nach der Auflösung der Abhängigkeiten.

$ composer install

Paket entfernen (composer remove)

Der Befehl remove entfernt das Paket aus der composer.json Datei und löscht den Code aus dem Projekt.

# Spezifische Paket entfernen
$ composer remove isotope/isotope-core

# Mehrere Pakete gleichzeitig entfernen
$ composer remove isotope/isotope-core terminal42/contao-leads

Paket suchen (composer search)

Mit dem Suchbefehl können Pakete in den angegebenen Repositories des aktuellen Projekts gesucht werden. Normalerweise ist dies packagist.org. Die Suche direkt dort auf dieser Seite ist ebenfalls eine bequeme Sache!

$ composer search monolog

# Ausgabe
monolog/monolog Sends your logs to files, sockets, inboxes, databases and various web services
symfony/monolog-bundle Symfony MonologBundle
symfony/monolog-bridge Symfony Monolog Bridge
...

Updates für Pakete prüfen (composer outdated)

Der outdated Befehl zeigt eine Liste der installierten Pakete, für die Updates verfügbar sind, einschliesslich ihrer aktuellen und neuen Version.

$ composer outdated

Überprüfen wieso ein Paket installiert wurde bzw. nicht installiert werden kann

Der Befehl why zeigt auf, welche anderen Pakete von einem bestimmten Paket abhängen bzw. wieso dieses Paket installiert wurde.

$ composer why monolog

Umgekehrt sagt der Befehl why-not, welches Pakete ein bestimmtes Paket daran hindern, installiert zu werden. Man kann eine Versionsbeschränkung angeben, um zu überprüfen, ob Upgrades in das Projekt durchgeführt werden können und wenn nicht, warum nicht. Man kann auch Systemanforderungen angeben, um zum Beispiel zu prüfen, ob man Anpassungen an der Serverumgebung machen kann (zum Beispiel ob man die PHP Version erhöhen kann).

$ composer why-not monolog
$ composer why-not php:8

composer.lock aktualisieren

Um nur die composer.lock Datei zu aktualisieren, kann man eine der folgenden beiden Befehle verwenden.

$ composer update --lock
$ composer update nothing

Zurück

Kommentare

Kommentar von Marc |

Danke für diese hilfreiche Übersicht! :-D

Kommentar von David |

Hi,

in welchem Verzeichnis sollte man ein composer installieren?

gruss david

Antwort von Marco Simbürger

Hallo David

Grundsätzlich installiert man Composer im globalen Verzeichnis, damit man Composer von überall aufrufen kann. Siehe: https://getcomposer.org/doc/00-intro.md Beispiel: /usr/local/bin/composer

Du kannst die Composer Datei aber auch direkt in Deinem Projekt haben und von dort aufrufen.

Gruss
Marco

Kommentar von Jasmin |

Vielen Dank für die verständliche Anleitung!

Einen Kommentar schreiben

Was ist die Summe aus 3 und 6?