Composeist ein Abhängigkeitsmanager für PHP (ähnlich wie npm für Node.js oder pip für Python). Composer zieht alle erforderlichen PHP-Pakete ein, von denen Ihr Projekt abhängt, und verwaltet sie für Sie.
Dieses Tutorial enthält die Schritte, die zum Installieren von Composer auf Debian 9-Systemen erforderlich sind. Wir werden auch behandeln, wie Composer zum Erstellen und Verwalten von PHP-Projekten verwendet wird.
Voraussetzungen #
Bevor Sie mit diesem Tutorial fortfahren, vergewissern Sie sich, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind und PHP auf Ihrem Debian 9-System installiert ist.
Installieren von Composer #
Führen Sie die folgenden Schritte aus, um Composer auf Debian-Systemen zu installieren:
-
Aktualisieren Sie zuerst den Paketindex und installieren Sie die erforderlichen Pakete mit den folgenden Befehlen:
sudo apt update
sudo apt install php-cli php-zip wget unzip
-
Sobald die Abhängigkeiten installiert sind, verwenden Sie die PHP-Befehlszeilenschnittstelle, um das Composer-Installationsskript herunterzuladen:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Der obige Befehl lädt die
composer-setup.php
herunter Datei im aktuellen Arbeitsverzeichnis. -
Wir überprüfen die Integrität der Skriptdaten, indem wir das Skript
SHA-384
vergleichen Hash mit dem neusten Installer-Hash, der auf der Seite Composer Public Keys / Signatures zu finden ist.Führen Sie den folgenden wget-Befehl aus, um die erwartete Signatur des neuesten Composer-Installationsprogramms von der Github-Seite des Composer herunterzuladen und in einer Variablen mit dem Namen
HASH
zu speichern :HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
Um sicherzustellen, dass das Installationsskript nicht beschädigt ist, kopieren Sie den folgenden Code und fügen Sie ihn in Ihre Konsole ein:
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, sehen Sie die folgende Ausgabe:
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. -
Der folgende Befehl installiert Composer im Verzeichnis
/usr/local/bin
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
An diesem Punkt haben Sie Composer auf Ihrem Debian-System installiert. Es wird als systemweiter Befehl installiert und steht allen Benutzern zur Verfügung.
-
Um die Installation zu überprüfen, geben Sie einfach ein:
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]
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 Sie Composer nun auf Ihrem Debian-System installiert haben, zeigen wir Ihnen, wie Sie mit Composer ein PHP-Projekt erstellen.
Beginnen Sie mit der Erstellung eines Verzeichnisses, das das Projektstammverzeichnis sein wird, und enthalten Sie composer.json
Datei. Diese 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
Als Nächstes initialisieren wir eine neue composer.json
Datei mit dem composer require <package name>
Befehl und geben Sie das Paket an, das wir herunterladen möchten. 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 eine neue composer.json
zu initialisieren Datei und installieren Sie das Carbon-Paket:
composer require nesbot/carbon
Using version ^1.34 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
- Installing symfony/translation (v3.4.17): Downloading (100%)
- Installing nesbot/carbon (1.34.0): Downloading (100%)
symfony/polyfill-mbstring suggests installing ext-mbstring (For best performance)
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
Composer erstellt eine composer.json
Datei und laden Sie Carbon und alle seine Abhängigkeiten herunter und installieren Sie es.
Wenn Sie das Verzeichnis Ihres Projekts mit dem ls
Befehl, sehen Sie, dass er zwei Dateien composer.json
enthält und composer.lock
, und ein vendor
Verzeichnis.
ls -l
-rw-r--r-- 1 linuxize users 60 Oct 16 21:02 composer.json
-rw-r--r-- 1 linuxize users 6851 Oct 16 21:02 composer.lock
drwxr-xr-x 5 linuxize users 4096 Oct 16 21:02 vendor
vendor
- das Verzeichnis, in dem die Projektabhängigkeiten gespeichert sind.composer.lock
- Datei, die eine Liste aller installierten Pakete enthält, einschließlich der Version der Pakete.composer.json
- Datei, die das PHP-Projekt und alle PHP-Abhängigkeiten beschreibt.
Composer bietet Autoload-Funktionen, die es uns ermöglichen, PHP-Klassen zu verwenden, ohne require
zu müssen oder include
die Dateien.
Erstellen Sie eine Datei namens testing.php
und fügen Sie den folgenden Code ein:
<?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 von Composer automatisch generiert wurde. Diese Datei lädt automatisch alle erforderlichen Bibliotheken.
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-10-16 21:08:45
Wenn Sie später die Projektpakete aktualisieren müssen, geben Sie Folgendes ein:
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.