Composer ist ein Paketmanager auf Anwendungsebene für die Programmiersprache PHP, ähnlich wie NPM für Node.Js oder PIP für Python. Composer bietet ein Standardformat zum Verwalten aller Abhängigkeiten von PHP-Software und den erforderlichen Bibliotheken, indem alle erforderlichen PHP-Pakete Ihres Projekts heruntergeladen und für Sie verwaltet werden. Es wird von den meisten modernen PHP-Frameworks wie Laravel, Drupal, Magento und Symfony verwendet.
Im folgenden Tutorial erfahren Sie, wie Sie Composer herunterladen und installieren, zusammen mit einigen grundlegenden Informationen zur Arbeit mit Composer unter Debian 11 Bullseye.
Voraussetzungen
- Empfohlenes Betriebssystem: Debian 11 Bullseye
- Benutzerkonto: Ein Benutzerkonto mit sudo-Privilegien oder Root-Zugriff (su-Befehl) .
- Erforderliche Pakete: wget, PHP 5.3 oder höher
Betriebssystem aktualisieren
Aktualisieren Sie Ihr Debian 11 Betriebssystem, um sicherzustellen, dass alle vorhandenen Pakete auf dem neuesten Stand sind:
sudo apt update && sudo apt upgrade
Root- oder Sudo-Zugriff
Wenn Sie Ihr Konto beim Start mit Debian im Vergleich zu anderen Distributionen erstellen, erhält es standardmäßig nicht automatisch den Sudoers-Status. Sie müssen entweder Zugriff auf das Root-Passwort haben um den su-Befehl zu verwenden oder besuchen Sie unser Tutorial zum Hinzufügen eines Benutzers zu Sudoern unter Debian.
Abhängigkeiten installieren
Die folgenden Pakete sind zum Herunterladen von Composer und für die zukünftige Verwendung erforderlich. Beachten Sie, dass Sie bei Verwendung einer bestimmten PHP-Version die folgenden PHP-Pakete an die Version anpassen müssen. Wenn Sie beispielsweise PHP 8.0 installieren, lautet dies php8.0-mbstring.
sudo apt install curl wget php-common php-cli php-gd php-mysql php-curl php-intl php-mbstring php-bcmath php-imap php-xml php-zip git unzip
Installieren Sie PHP Composer
Das Composer-Team hat ein offizielles PHP-Skript erstellt, um PHP Composer auf Ihrem System zu installieren und zu konfigurieren. Sie können dies herunterladen, indem Sie die Download-Seite besuchen oder Ihr Debian-Terminal öffnen und Folgendes ausführen.
PHP-Methode:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
WGET-Methode:
wget -O composer-setup.php https://getcomposer.org/installer
Jetzt, da die setup.php heruntergeladen ist, ist es an der Zeit, Composer zu installieren. Dies kann auf zwei verschiedene Arten geschehen, eine, bei der Sie Composer global installieren können, oder die zweite Alternative, bei der die Installation pro PHP-Anwendungsbasis erfolgt.
Um global zu installieren:
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
chmod +x /usr/local/bin/composer
Zur Installation pro Anwendung:
cd /example-project/php-application && mkdir -p bin
php composer-setup.php --install-dir=bin --filename=composer
chmod +x bin/composer
Wie oben beschrieben, müssen Sie zum PHP-Projektverzeichnis navigieren und ein bin-Verzeichnis für den zu installierenden PHP-Composer erstellen.
Bestätigen Sie anschließend, dass Composer installiert ist und um welchen Build und welche Version es sich handelt.
composer --version
Composer version 2.1.8 2021-09-15 13:55:14
Testen Sie nun Ihre Composer-Installation mit dem folgenden Befehl:
composer
Beispielausgabe:
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.1.8 2021-09-15 13:55:14
Usage:
command [options] [arguments]
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
--profile Display timing and memory usage information
--no-plugins Whether to disable plugins.
-d, --working-dir=WORKING-DIR If specified, use the given directory as working directory.
--no-cache Prevent use of the cache
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
about Shows a short information about Composer.
archive Creates an archive of this composer package.
browse Opens the package's repository URL or homepage in your browser.
cc Clears composer's internal package cache.
check-platform-reqs Check that platform requirements are satisfied.
clear-cache Clears composer's internal package cache.
clearcache Clears composer's internal package cache.
config Sets config options.
create-project Creates new project from a package into given directory.
depends Shows which packages cause the given package to be installed.
diagnose Diagnoses the system to identify common errors.
dump-autoload Dumps the autoloader.
dumpautoload Dumps the autoloader.
exec Executes a vendored binary/script.
fund Discover how to help fund the maintenance of your dependencies.
global Allows running commands in the global composer dir ($COMPOSER_HOME).
help Displays help for a command
home Opens the package's repository URL or homepage in your browser.
i Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
info Shows information about packages.
init Creates a basic composer.json file in current directory.
install Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
licenses Shows information about licenses of dependencies.
list Lists commands
outdated Shows a list of installed packages that have updates available, including their latest version.
prohibits Shows which packages prevent the given package from being installed.
reinstall Uninstalls and reinstalls the given package names
remove Removes a package from the require or require-dev.
require Adds required packages to your composer.json and installs them.
run Runs the scripts defined in composer.json.
run-script Runs the scripts defined in composer.json.
search Searches for packages.
self-update Updates composer.phar to the latest version.
selfupdate Updates composer.phar to the latest version.
show Shows information about packages.
status Shows a list of locally modified packages.
suggests Shows package suggestions.
u Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
update Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
upgrade Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
validate Validates a composer.json and composer.lock.
why Shows which packages cause the given package to be installed.
why-not Shows which packages prevent the given package from being installed.
Wie man mit PHP Composer arbeitet
Das Tutorial zeigt Ihnen einige wesentliche Funktionen, wenn der PHP Composer installiert ist, um seine Funktionsweise zu testen.
Erstellen Sie zuerst Ihr Projektverzeichnis:
mkdir ~/composer-test
cd ~/composer-test
Suchen Sie als Nächstes ein Paket von Packagist oder verwenden Sie alternativ das Beispiel des Tutorials und führen Sie den folgenden Befehl aus, um eine neue composer.json-Datei zu initialisieren und das Carbon-Paket zu installieren:
composer require psr/log
Beispielausgabe:
Using version ^1.1 for psr/log
./composer.json has been created
Running composer update psr/log
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
- Locking psr/log (1.1.4)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Downloading psr/log (1.1.4)
- Installing psr/log (1.1.4): Extracting archive
Generating autoload files
Wie oben, erstellt und aktualisiert der Composer automatisch die Datei composer.json zusammen mit den erforderlichen Abhängigkeiten. Alternativ können Sie vorhandene Pakete auf eine bestimmte Versionsnummer installieren und/oder herunterstufen.
Beispiel:
composer require psr/log=1.0
Im Projektverzeichnis können Sie die darin enthaltenen Dateien und Verzeichnisse mit dem ls-Befehl auflisten :
ls -l
Beispielausgabe:
./composer.json has been updated
Running composer update psr/log
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 installs, 1 update, 0 removals
- Downgrading psr/log (1.1.4 => 1.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 1 update, 0 removals
- Downloading psr/log (1.0.0)
- Downgrading psr/log (1.1.4 => 1.0.0): Extracting archive
Generating autoload files
Eine Aufschlüsselung der Begriffe und der aufgelisteten Dateien.
- composer.json – Datei erstellt für Projekt und alle PHP-Abhängigkeiten.
- composer.lock – Datei mit Liste aller Pakete und Versionen.
- Anbieter – Verzeichnis, in das die Abhängigkeiten heruntergeladen und installiert werden.
Bei Ihrem Projekt möchten oder müssen Sie möglicherweise die Abhängigkeiten aktualisieren, und dies kann mit dem folgenden Befehl erfolgen:
composer update
Beispielausgabe:
Loading composer repositories with package information
Updating dependencies
Nothing to modify in lock file
Installing dependencies from lock file (including require-dev)
Nothing to install, update or remove
Generating autoload files
Wie Sie oben sehen können, müssen keine Abhängigkeiten aktualisiert werden. Wenn ja, würde der Prozess beginnen.
Wenn Sie das Modul nicht mehr benötigen, können Sie es mit dem Composer-Remove-Befehl entfernen:
composer remove psr/log
Beispielausgabe:
./composer.json has been updated
Running composer update psr/log
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 installs, 0 updates, 1 removal
- Removing psr/log (1.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 0 updates, 1 removal
- Removing psr/log (1.0.0)
Generating autoload files
Beim Entfernen von Paketen wird wie beim Installieren durch das Entfernen automatisch die Datei composer.json aktualisiert. Sie können dies mit dem cat-Befehl überprüfen .
cat composer.json
Beispiel vor dem Entfernen des psr/log-Pakets:
{
"require": {
"psr/log": "1.0"
}
}
Beispiel nach dem Entfernen des psr/log-Pakets:
{
}
So aktualisieren Sie PHP Composer
Ein praktisches Feature von PHP Composer ist, dass es sich selbst auf die neueste verfügbare stabile Version aktualisieren kann. Führen Sie zum Upgrade den folgenden Befehl aus.
composer self-update
Beispielausgabe:
You are already using the latest available Composer version 2.1.8 (stable channel).
Wie oben erwähnt, ist der PHP-Composer bereits auf dem neusten Stand. Wenn jedoch ein Upgrade verfügbar ist, werden Sie zum Upgrade aufgefordert.