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 verwendet.
Dieser Artikel erklärt, wie man Composer auf Debian 10-Systemen installiert. Wir werden auch behandeln, wie Composer zum Erstellen und Verwalten von PHP-Projekten verwendet wird.
Installieren von Composer unter Debian #
Stellen Sie vor der Installation von Composer sicher, dass Sie alle erforderlichen Pakete auf Ihrem Debian-System installiert haben:
sudo apt updatesudo apt install wget php-cli php-zip unzip
Composer bietet ein in PHP geschriebenes Installationsprogramm, mit dem wir Composer installieren.
Laden Sie den Installer mit wget herunter :
wget -O composer-setup.php https://getcomposer.org/installer
Der obige Befehl speichert die Datei als composer-setup.php im aktuellen Arbeitsverzeichnis.
Composer ist eine Einzeldatei-CLI-Anwendung, die entweder global oder als Teil des Projekts installiert werden kann. Die globale Installation erfordert sudo-Berechtigungen.
-
Um Composer global als systemweiten Befehl zu installieren, der allen Benutzern zur Verfügung steht, legen Sie die Datei einfach in einem Verzeichnis ab, das sich im
PATHdes Systems befindet . Der folgende Befehl installiert Composer im Verzeichnis/usr/local/binVerzeichnis:sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composerAll settings correct for using Composer Downloading... Composer (version 1.10.10) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composerSie können jetzt Composer verwenden, indem Sie
composerausführen in Ihrem Terminal. -
Um Composer lokal zu installieren, laden Sie die Datei in Ihr Projektstammverzeichnis herunter:
sudo php composer-setup.php --install-dir=/path/to/projectDadurch wird eine Datei namens
composer.pharheruntergeladen . Um Composer zu verwenden, navigieren Sie zum Projektverzeichnis und führen Siephp composer.pharaus
Wenn eine neue Composer-Version verfügbar ist, können Sie die Installation mit dem folgenden Befehl aktualisieren:
sudo composer self-update Erste Schritte mit Composer #
Nachdem Sie Composer nun auf Ihrem Debian-System installiert haben, zeigen wir Ihnen, wie Sie 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.
Führen Sie die folgenden Befehle aus, um das Projektverzeichnis zu erstellen, und wechseln Sie mit:
mkdir ~/my-first-composer-projectcd ~/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.
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 ./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 5 installs, 0 updates, 0 removals
- Installing symfony/translation-contracts (v2.1.3): Downloading (100%)
- Installing symfony/polyfill-php80 (v1.18.1): Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.18.1): Downloading (100%)
- Installing symfony/translation (v5.1.3): Downloading (100%)
- Installing nesbot/carbon (2.38.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
5 packages you are using are looking for funding.
Use the `composer fund` command to find out more
Wie in der Ausgabe gezeigt, erstellt Composer die Datei composer.json Datei und lädt Carbon und alle seine Abhängigkeiten herunter und installiert es.
Wenn Sie das Verzeichnis Ihres Projekts mit ls auflisten , sehen Sie, 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 17 21:02 composer.json
-rw-r--r-- 1 linuxize users 6851 Aug 17 21:02 composer.lock
drwxr-xr-x 5 linuxize users 4096 Aug 17 21:02 vendor
vendor- das Verzeichnis, in dem die Projektabhängigkeiten gespeichert sind.composer.lock- eine Datei, die eine Liste aller installierten Pakete enthält, einschließlich der Version der Pakete.composer.json- eine Datei, die das PHP-Projekt und alle PHP-Abhängigkeiten beschreibt.
Composer bietet Autoload-Funktionen, mit denen Sie PHP-Klassen verwenden können, 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: 2020-08-17 21:08:45
Wenn Sie später die Projektpakete aktualisieren müssen, geben Sie Folgendes ein:
composer update
Der obige Befehl sucht nach neueren Versionen der installierten Pakete und ob eine neuere Version gefunden wird und die Versionseinschränkung mit der in composer.json angegebenen übereinstimmt , Composer aktualisiert das Paket.