Composer ist ein Abhängigkeitsverwaltungstool für PHP, ähnlich wie cpan
für Perl. Wenn Sie das Tutorial über die Installation von cpan gelesen haben, wird Ihnen die Architektur einigermaßen bekannt vorkommen. Composer ist als Befehlszeilentool der Client, der die PHP-Bibliotheken abrufen und aktualisieren kann, die wir als erforderlich markieren, sowie die Bibliotheken, von denen diese abhängen usw.
Die Quelle dieser Bibliotheken ist packagist.org, ein großes öffentliches Repository für PHP-Pakete. Wir können das Repository mit einem Browser durchsuchen, um die Pakete zu finden, die wir verwenden möchten, und sie dann mit Hilfe von Composer in unsere Projekte aufnehmen. Und durch das Lösen der Abhängigkeiten selbst kann Composer unser Leben viel einfacher machen, wenn wir auf externe Pakete angewiesen sind. Im Gegenzug können wir auch unsere Bibliotheken teilen, sodass die Community auch über Composer darauf zugreifen kann.
In diesem Tutorial installieren wir Composer auf Red Hat Enterprise Linux 8 und markieren ein Paket als erforderliche Abhängigkeit für unser Projekt, um zu sehen, wie das Tool funktioniert.
In diesem Tutorial lernen Sie:
- So installieren Sie Composer
- Wie man Pakete als Abhängigkeiten definiert
- So installieren Sie Abhängigkeiten mit Composer
Die Haupthilfe des Komponisten.
Softwareanforderungen und verwendete Konventionen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Red Hat Enterprise Linux 8 |
Software | Composer 1.8.0 |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Schritt-für-Schritt-Anleitung zur Installation von Composer auf Redhat 8
Um Composer nutzen zu können, benötigen wir natürlich php
, mit einigen Erweiterungen. PHP 7.2 und Erweiterungen dafür sind nach Aktivierung der Abonnementverwaltungs-Repositories sowie über das im ISO-Format verteilte Installationsprogramm erreichbar.
- Zuerst müssen wir php-bezogene Pakete mit
dnf
installieren :dnf install php php-cli php-zip php-json
- Jetzt können wir das Composer-Installationsprogramm mit php herunterladen:
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- Um von überall auf dem System auf das Tool zugreifen zu können, platzieren wir es im
$PATH
./usr/local/bin
ist im$PATH
enthalten standardmäßig.# php composer-setup.php --install-dir=/usr/local/bin --filename=composer All settings correct for using Composer Downloading... Composer (version 1.8.0) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
- Um die Funktionalität zu testen, erstellen wir ein Arbeitsverzeichnis, das das Stammverzeichnis unseres
php
ist Entwicklungsprojekt:$ mkdir myProject
Und geben Sie es ein:
$ cd myProject
Nachdem wir das Repository durchsucht haben, entscheiden wir, dass wir den
zend-eventmanager
benötigen Paket, Version3.2.1
. Wir erstellen eine Textdatei namenscomposer.json
mit folgendem Inhalt im Stammverzeichnis unseres Projekts:{ "require": { "zendframework/zend-eventmanager": "3.2.1" } }
- Um das Paket zu installieren, das wir als Abhängigkeit definiert haben, können wir den frisch installierten
composer
verwenden :$ composer install Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 1 install, 0 updates, 0 removals - Installing zendframework/zend-eventmanager (3.2.1): Downloading (100%) zendframework/zend-eventmanager suggests installing container-interop/container-interop (^1.1.0, to use the lazy listeners feature) zendframework/zend-eventmanager suggests installing zendframework/zend-stdlib (^2.7.3 || ^3.0, to use the FilterChain feature) Writing lock file Generating autoload files
Wenn wir unser Arbeitsverzeichnis auflisten, sehen wir eine Sperrdatei und einen
vendor
Verzeichnis. Letzteres ist das, wocomposer
die erforderlichen Pakete heruntergeladen.$ ls composer.json composer.lock vendor
$ ls vendor/ autoload.php composer zendframework
Innerhalb des
vendor
Verzeichnis ist das benötigte Paket und eineautoload.php
. Dies ist die einzige Datei, die wir in unseren Code aufnehmen müssen, um eine der Bibliotheken zu verwenden, die wir mitcomposer
installiert haben . Es wird bei der Installation/Aktualisierung eines neuen Pakets neu generiert.