Composer für PHP: Vollständiger Leitfaden mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist Composer und wozu wird es benötigt?

\n\n

Composer ist ein Abhängigkeitsmanager für die Programmiersprache PHP. Wenn Sie bereits mit npm für JavaScript oder pip für Python gearbeitet haben, wird Ihnen das Funktionsprinzip von Composer bekannt vorkommen. Es ermöglicht Ihnen, Bibliotheken zu deklarieren, von denen Ihr Projekt abhängt, und deren Installation, Aktualisierung und Entfernung automatisch zu verwalten.

\n\n

Wozu wird Composer benötigt? In der modernen PHP-Entwicklung wird selten alles von Grund auf neu geschrieben. Üblicherweise werden fertige Bibliotheken verwendet: für die Arbeit mit Datenbanken (Doctrine, Eloquent), HTTP-Anfragen (Guzzle), Template-Engines (Twig), Logging (Monolog) usw. Früher luden Entwickler ZIP-Archive herunter, kopierten Dateien manuell und banden sie über require ein. Das war umständlich, Versionen waren schwer zu verwalten und Abhängigkeiten zu aktualisieren. Composer löst all diese Probleme:

\n\n
    \n
  • Automatisches Laden (Autoloading): Composer generiert eine Autoload-Datei, die automatisch alle benötigten Klassen einbindet. Sie müssen keine Dutzende von require_once schreiben.
  • \n
  • Versionsverwaltung: Sie geben genaue Versionen (oder Bereiche) der Bibliotheken an, und Composer stellt sicher, dass diese nicht miteinander in Konflikt geraten.
  • \n
  • Zentrales Repository: Alle Bibliotheken werden auf Packagist.org gehostet – dem offiziellen Composer-Repository.
  • \n
  • Reproduzierbarkeit: Die Datei composer.lock fixiert die genauen Versionen aller installierten Pakete, was eine identische Umgebung auf allen Maschinen (Entwicklung, Test, Produktion) garantiert.
  • \n
\n\n

Installation von Composer

\n\n

Installation unter Linux / macOS

\n

Der einfachste Weg ist die Verwendung des offiziellen Installationsskripts. Öffnen Sie ein Terminal und führen Sie Folgendes aus:

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

Danach erhalten Sie die Datei composer.phar. Um den Befehl composer global verfügbar zu machen, verschieben Sie diese:

\n
sudo mv composer.phar /usr/local/bin/composer
\n\n

Installation unter Windows

\n

Laden Sie das Installationsprogramm von der offiziellen Website herunter und führen Sie es aus. Es fügt Composer automatisch zur Systemvariablen PATH hinzu.

\n\n

Installation überprüfen

\n

Nach der Installation führen Sie im Terminal Folgendes aus:

\n
composer --version
\n

Sie sollten etwas sehen wie: Composer version 2.7.1 2024-03-11 16:15:07.

\n\n

Schnellstart mit einem Codebeispiel

\n\n

Erstellen wir ein neues Projekt und installieren eine Bibliothek für die Arbeit mit Daten – nesbot/carbon.

\n\n
    \n
  1. Erstellen Sie ein Projektverzeichnis:\n
    mkdir my_project\ncd my_project
    \n
  2. \n
  3. Initialisieren Sie Composer:\n
    composer init
    \n

    Sie werden aufgefordert, den Projektnamen, die Beschreibung, den Autor usw. einzugeben. Sie können einfach die Eingabetaste drücken, um die Standardwerte zu übernehmen. Es wird die Datei composer.json erstellt.

    \n
  4. \n
  5. Installieren Sie die Carbon-Bibliothek:\n
    composer require nesbot/carbon
    \n

    Composer lädt die Bibliothek und alle ihre Abhängigkeiten in den Ordner vendor/ herunter, erstellt die Datei composer.lock und aktualisiert composer.json.

    \n
  6. \n
  7. Erstellen Sie die Datei index.php:\n
    <?php\nrequire_once __DIR__ . '/vendor/autoload.php';\n\nuse Carbon\\Carbon;\n\necho                    

Empfehlungen