Composer – Ein Paketmanager für PHP

Composer ist quasi npm für PHP. Klingt gut? Das schauen wir uns an. 

Was ist Composer

Composer ist ein anwendungsorientierter Paketmanager für PHP und steht unter der MIT Lizenz. Es ist kein ein Paketmanager im Sinne von Yum oder Apt sondern wurde stark inspiriert von Node’s npm und Ruby’s bundler.

Composer kann über die Kommandozeile ausgeführt werden und installiert Abhängigkeiten (zum Beispiel: Bibliotheken) eines PHP Programmes. Verfügbare PHP Anwendungen können über die Plattform „Packagist“ gesucht werden.

Installation

Zum Installieren von Composer wechselt man ins Projektverzeichnis und führt folgenden Befehl aus (php sollte dazu in der Path-Variable stehen):

 
curl -s https://getcomposer.org/installer | php 

Die composer.phar Datei wird jetzt ins Verzeichnis heruntergeladen. Als nächstes erstellt man eine composer.json Datei, in die man einträgt, welche Pakete benötigt werden.

 
{ 
  { 
    'monolog/monolog': '1.0.*'; 
  } 
} 

Jetzt können die Pakete installiert werden.


php composer.phar install

Die Pakete werden nun in den Unterordner vendor heruntergeladen.

Man kann sich die composer.json auch automatisch erzeugen und die abhängigen Pakete herunterladen lassen. Dazu verwendet man das Schlüsselwort require. Läßt man die Angabe der Version weg, wird die neueste Version heruntergeladen.


php composer.phar require monolog/monolog;

Ein Update eines Paketes ruft man mittels Schlüsselwort update ab.


php composer.phar update monolog/monolog;

Autoloader

Composer erzeugt zusätzlich eine Datei vendor/autoloader.php. Diese kann man einfach im PHP Code des Projektes inkludieren und erhält einen Autoloader.

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

Damit kann man die Klassen alle vorhandenen Pakete einfach verwenden, sie werden vom Autoloader geladen, wenn sie benötigt werden.

Will man den Autoloader nicht verwenden, kann man die Dateien vendor/composer/autoload_*.php auch einzeln inkludieren. Die Dateien hat Composer für uns erstellt.

Fazit

Ganz ehrlich, auf Paketmanager wie npm und bower mag ich nicht mehr verzichten. Zu bequem ist das ganze. Für PHP reiht sich Composer nahtlos ein.

Ähnliche Beiträge

2 Kommentare

  1. Moinsen,
    goiler Artikel, alten. Top!
    Aber verstehe icke ditt richtig, ditt der Composer so ene Art Sammlung von Objekten und Klassen sind????
    Es wäre schön jewesen, wenn du n Beispiel gebracht hättest wie es in der Praxis eingesetzt wird. weßte watt ick mein? In einer php konkret uff die Bibliothek zugreifen und eine Klassenobjekt verwenden. Ditt wäre mega!
    Grüßchen
    Jogi

    1. Grüße Jogi, Composer ist nur der Paketmanager für PHP-Bibliotheken, nicht die Objekte und Klassen selbst. Es ist wie ein Repository zu verstehen, in welchem steht, welche Bibliotheken es gibt, wo sie her kommen und welche Abhängigkeiten zu anderen Bibliotheken bestehen. Benötigt man z.B. eine Mail-Bibliothek, schaut man auf https://packagist.org/ nach einem passenden Paket und installiert dieses über Composer für sein Projekt. Alle abhängigen Pakete, die von der Mail-Bibliothek benötigt werden, werden automatisch in der korrekten Version mit installiert. Da muss man sich nicht kümmern.
      Unter https://computerhalbwissen.de/wie-man-eine-restful-api-mit-reactphp-baut-2019/ findest Du noch einen Artikel von uns, in dem 2 Bibliotheken verwendet werden, die mittels Composer installiert und dann benutzt werden. Ich hoffe, das hilft Dir weiter.

Schreibe einen Kommentar

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