Composeist ein Abhängigkeitsmanager für PHP (ähnlich wie npm für Node.jsor pip für Python).
Composer zieht alle erforderlichen PHP-Pakete ein, von denen Ihr Projekt abhängt, und verwaltet sie für Sie. Es wird in allen modernen PHP-Frameworks und -Plattformen wie Laravel, Symfony, Drupal und Magento 2 verwendet.
In diesem Tutorial werden wir die Schritte zur Installation und Verwendung von Composer auf einem CentOS 7-Rechner durchgehen.
Voraussetzungen #
Stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben, bevor Sie mit diesem Lernprogramm fortfahren:
- Als Benutzer mit sudo-Berechtigungen angemeldet
- Haben Sie PHP 7 auf Ihrem CentOS 7-System installiert.
Installieren von Composer unter CentOS #
Die folgenden Schritte beschreiben die Installation von Composer auf einem CentOS 7-System.
-
Installieren Sie zuerst das PHP-CLI-Paket (Befehlszeilenschnittstelle) und alle anderen Abhängigkeiten mit:
sudo yum install php-cli php-zip wget unzip
-
Laden Sie nach der Installation von PHP CLI das Composer-Installationsskript herunter mit:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Der obige Befehl lädt die
composer-setup.php
herunter Datei im aktuellen Arbeitsverzeichnis. -
Um die Datenintegrität des Skripts zu überprüfen, vergleichen Sie das Skript
SHA-384
Hash mit dem neusten Installer-Hash, der auf der Seite Composer Public Keys / Signatures zu finden ist.Der folgende wget-Befehl lädt die erwartete Signatur des neuesten Composer-Installationsprogramms von der Github-Seite des Composers herunter und speichert sie in einer Variablen namens
HASH
:HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
Um sicherzustellen, dass das Installationsskript nicht beschädigt ist, führen Sie den folgenden Befehl aus:
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Wenn die Hashes übereinstimmen, wird die folgende Meldung angezeigt:
Installer verified
Wenn die Hashes nicht übereinstimmen, wird
Installer corrupt
angezeigt . In diesem Fall müssen Sie das Composer-Installationsskript erneut herunterladen und den Wert von$HASH
überprüfen Variable mitecho $HASH
. Sobald das Installationsprogramm verifiziert ist, können Sie mit dem nächsten Schritt fortfahren. -
Führen Sie den folgenden Befehl aus, um Composer im Verzeichnis
/usr/local/bin
zu installieren Verzeichnis:sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
All settings correct for using Composer Downloading... Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
Der
composer
wird als systemweiter Befehl installiert und steht allen Benutzern zur Verfügung. -
Der letzte Schritt ist die Überprüfung der Installation:
composer
Der obige Befehl gibt die Version, Befehle und Argumente des Komponisten aus.
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.8.5 2019-04-09 17:46:47 Usage: command [options] [arguments]
An diesem Punkt haben Sie Composer erfolgreich auf Ihrem CentOS-System installiert.
php composer-setup.php
wodurch eine Datei namens composer.phar
erstellt wird in Ihrem aktuellen Arbeitsverzeichnis. Sie können den Composer verwenden, indem Sie ./composer.phar <command>.
ausführen Erste Schritte mit Composer #
Nachdem Composer nun auf Ihrem CentOS-System installiert ist, zeigen wir Ihnen, wie Sie Composer in einem PHP-Projekt verwenden.
Erstellen Sie zunächst ein Verzeichnis, das das Stammverzeichnis des Projekts sein wird, und enthalten Sie composer.json
Datei.
composer.json
Datei beschreibt Ihr PHP-Projekt einschließlich der PHP-Abhängigkeiten und anderer Metadaten.
Erstellen Sie das Projektverzeichnis und wechseln Sie dorthin mit:
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
In diesem Beispiel erstellen wir eine Beispielanwendung, die die aktuelle Uhrzeit mit einem Paket namens carbon ausgibt.
Führen Sie den folgenden Befehl aus, um ein neues Composer-Projekt zu initialisieren und das Carbon-Paket zu installieren:
composer require nesbot/carbon
Using version ^2.2 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
- Installing symfony/translation (v4.1.4): Downloading (100%)
- Installing nesbot/carbon (2.2.0): Downloading (100%)
symfony/translation suggests installing symfony/config
symfony/translation suggests installing symfony/yaml
symfony/translation suggests installing psr/log-implementation (To use logging capability in translator)
Writing lock file
Generating autoload files
Wie Sie der obigen Ausgabe entnehmen können, erstellt Composer die Datei composer.json
Datei und es wird Carbon und alle seine Abhängigkeiten herunterladen und installieren.
Wenn Sie das Verzeichnis Ihres Projekts auflisten, werden Sie sehen, dass es zwei Dateien composer.json
enthält und composer.lock
, und ein vendor
Verzeichnis.
ls -l
-rw-r--r-- 1 linuxize users 60 Aug 29 00:50 composer.json
-rw-r--r-- 1 linuxize users 6.8K Aug 29 00:50 composer.lock
drwxr-xr-x 5 linuxize users 4.0K Aug 29 00:50 vendor
- Der
vendor
Verzeichnis ist das Verzeichnis, in dem die Projektabhängigkeiten gespeichert werden. - Das
composer.lock
enthält eine Liste aller installierten Pakete inklusive ihrer Versionen. - Die
composer.json
beschreibt das PHP-Projekt und alle PHP-Abhängigkeiten.
Composer bietet Autoload-Funktionen, die es uns ermöglichen, PHP-Klassen zu verwenden, ohne require
verwenden zu müssen oder include
die Dateien.
Erstellen Sie eine Datei namens testing.php
und fügen Sie den folgenden Code hinzu:
<?php
require __DIR__ . '/vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
Lassen Sie uns den Code Zeile für Zeile analysieren.
In der ersten Zeile nach dem öffnenden PHP-Tag binden wir die vendor/autoload.php
ein Datei, die automatisch von Composer generiert wurde und alle Bibliotheken automatisch lädt.
Als nächstes aliasieren wir Carbon\Carbon
als Carbon
und in der letzten Zeile drucken wir die aktuelle Uhrzeit mit dem Carbon now
Methode.
Führen Sie das Skript aus, indem Sie Folgendes eingeben:
php testing.php
Die Ausgabe sollte in etwa so aussehen:
Now: 2018-09-26 20:08:18
Wenn Sie später Ihre PHP-Pakete aktualisieren möchten, können Sie einfach Folgendes ausführen:
composer update
Der obige Befehl prüft, ob neuere Versionen der installierten Pakete vorhanden sind und ob eine neuere Version gefunden wird und ob die Versionseinschränkung mit der in composer.json
angegebenen übereinstimmt , Composer aktualisiert das Paket.