Zum Inhalt springen

Glossar · C

Composer

Paketmanager für PHP. Verwaltet Abhängigkeiten und Autoloading. Vergleichbar mit npm oder Cargo, aber für PHP-Bibliotheken.

Definition

Composer ist ein Paketmanager für die Programmiersprache PHP, der die Verwaltung von Abhängigkeiten in PHP-Projekten erleichtert. Er ermöglicht Entwicklern, benötigte Bibliotheken und deren Versionen einfach zu installieren, zu aktualisieren und zu verwalten. Composer verwendet eine deklarative Konfigurationsdatei namens 'composer.json', in der die Abhängigkeiten eines Projekts aufgeführt sind.

Durch die Nutzung von Composer können Entwickler sicherstellen, dass alle benötigten Bibliotheken in der richtigen Version vorhanden sind, was die Kompatibilität und Stabilität von Projekten erhöht. Composer ist ein unverzichtbares Werkzeug in der PHP-Entwicklung und wird häufig in Webanwendungen und Frameworks eingesetzt.

Was bedeutet das für Ihr Unternehmen?

Composer betrifft Sie indirekt bei jeder PHP-Anwendung, etwa auf Basis von Laravel, Statamic, Shopware oder Symfony: Über ihn kommen alle fremden Bausteine ins Projekt. Wichtig ist, dass die Datei composer.lock mit den exakten Versionen im Repository liegt, damit Server und Entwickler dieselbe Software nutzen und ein Update nachvollziehbar bleibt. Regelmäßige Sicherheitsprüfungen der installierten Pakete gehören deshalb in jeden Wartungsvertrag einer PHP-Anwendung.

Hintergrund

Composer wurde ab 2011 von Nils Adermann und Jordi Boggiano entwickelt und 2012 erstmals veröffentlicht. Die Idee hinter Composer war es, ein Werkzeug zu schaffen, das die Verwaltung von PHP-Paketen und deren Abhängigkeiten vereinfacht, ähnlich wie es npm für JavaScript oder RubyGems für Ruby tut. Seit seiner Einführung hat Composer an Popularität gewonnen und ist mittlerweile ein Standard in der PHP-Entwicklung.

Die Entwicklung von Composer wird von der Community unterstützt, und es gibt eine Vielzahl von verfügbaren Paketen, die über das zentrale Repository Packagist zugänglich sind. Packagist ist das offizielle Paket-Repository für Composer und enthält Hunderttausende von PHP-Paketen, die von Entwicklern weltweit erstellt wurden.

Funktionsweise

Composer arbeitet mit einer zentralen Konfigurationsdatei, die die Abhängigkeiten eines Projekts definiert. Diese Datei enthält Informationen über die benötigten Pakete, deren Versionen und andere Metadaten. Wenn ein Entwickler ein Projekt mit Composer initialisiert, wird die 'composer.json'-Datei erstellt und die Abhängigkeiten können hinzugefügt werden.

Um die Abhängigkeiten zu installieren, führt der Entwickler den Befehl 'composer install' aus. Composer lädt dann die erforderlichen Pakete herunter und installiert sie im Projektverzeichnis. Darüber hinaus erstellt Composer eine 'vendor'-Verzeichnisstruktur, in der alle installierten Pakete und deren Abhängigkeiten organisiert sind. Dies ermöglicht eine einfache Verwaltung und Nutzung der Bibliotheken im Projekt.

Einsatzgebiete

Composer findet in einer Vielzahl von Anwendungen und Projekten Verwendung, insbesondere in der Webentwicklung mit PHP. Beliebte PHP-Frameworks wie Laravel, Symfony und Laminas (früher Zend Framework) nutzen Composer zur Verwaltung ihrer Abhängigkeiten. Dies ermöglicht es Entwicklern, schnell auf die benötigten Bibliotheken zuzugreifen und ihre Projekte effizient zu strukturieren.

Darüber hinaus wird Composer auch in Content-Management-Systemen (CMS) wie Drupal verwendet, um Module und Plugins zu verwalten. Durch die Integration von Composer in diese Systeme können Entwickler die Installation und Aktualisierung von Erweiterungen automatisieren, was den Entwicklungsprozess erheblich vereinfacht.

Abgrenzung

Composer unterscheidet sich von anderen Paketmanagern wie npm (für JavaScript) oder pip (für Python), da es speziell für die PHP-Umgebung entwickelt wurde. Während npm und pip auf ihre jeweiligen Programmiersprachen ausgerichtet sind, konzentriert sich Composer ausschließlich auf PHP-Bibliotheken und deren Abhängigkeiten. Dies führt zu spezifischen Funktionen und einer anderen Handhabung von Paketen, die auf die Bedürfnisse der PHP-Entwicklung zugeschnitten sind.

Ein weiterer wichtiger Unterschied besteht darin, dass Composer nicht als eigenständige Laufzeitumgebung fungiert, sondern vielmehr als Werkzeug zur Verwaltung von Abhängigkeiten innerhalb der PHP-Umgebung. Dies bedeutet, dass Composer eine PHP-Installation voraussetzt und über die Kommandozeile ausgeführt wird, ein Webserver ist dafür nicht nötig.