Composerest un gestionnaire de dépendances pour PHP (similaire à npm pour Node.jsor pip pour Python).
Composer récupérera tous les packages PHP requis dont dépend votre projet et les gérera pour vous. Il est utilisé dans tous les frameworks et plates-formes PHP modernes tels que Laravel, Symfony, Drupal et Magento.
Cet article explique comment installer Composer sur les systèmes Debian 10. Nous verrons également comment utiliser Composer pour créer et gérer des projets PHP.
Installer Composer sur Debian #
Avant d'installer Composer, assurez-vous que tous les packages nécessaires sont installés sur votre système Debian :
sudo apt update
sudo apt install wget php-cli php-zip unzip
Composer propose un programme d'installation écrit en PHP que nous utiliserons pour installer Composer.
Téléchargez le programme d'installation avec wget
:
wget -O composer-setup.php https://getcomposer.org/installer
La commande ci-dessus enregistrera le fichier sous composer-setup.php
dans le répertoire de travail courant.
Composer est une application CLI à fichier unique qui peut être installée globalement ou dans le cadre du projet. L'installation globale nécessite des privilèges sudo.
-
Pour installer Composer globalement en tant que commande à l'échelle du système qui sera disponible pour tous les utilisateurs, placez simplement le fichier dans un répertoire qui se trouve dans le système
PATH
. La commande suivante installe Composer dans/usr/local/bin
répertoire :sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
All settings correct for using Composer Downloading... Composer (version 1.10.10) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
Vous pouvez maintenant utiliser Composer en exécutant
composer
dans votre terminal. -
Pour installer composer localement, téléchargez le fichier dans le répertoire racine de votre projet :
sudo php composer-setup.php --install-dir=/path/to/project
Cela téléchargera un fichier nommé
composer.phar
. Pour utiliser Composer, accédez au répertoire du projet et exécutezphp composer.phar
Lorsqu'une nouvelle version de Composer est disponible, vous pouvez mettre à jour l'installation à l'aide de la commande suivante :
sudo composer self-update
Démarrer avec Composer #
Maintenant que Composer est installé sur votre système Debian, nous allons vous montrer comment créer un projet PHP.
Commencez par créer un répertoire qui sera la racine du projet et contiendra le composer.json
dossier. Ce fichier décrit votre projet PHP, y compris les dépendances PHP et autres métadonnées.
Exécutez les commandes suivantes pour créer le répertoire du projet et basculez-y avec :
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
Ensuite, nous allons initialiser un nouveau composer.json
fichier utilisant le composer require <package name>
commande et spécifiez le package que nous voulons télécharger. Dans cet exemple, nous allons créer un exemple d'application qui imprimera l'heure actuelle à l'aide d'un package nommé carbon.
Exécutez la commande suivante pour initialiser un nouveau composer.json
fichier et installez le package carbone :
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
Comme indiqué dans la sortie, Composer crée le composer.json
file et télécharge et installe carbon et toutes ses dépendances.
Si vous listez le répertoire de votre projet avec ls
, vous verrez qu'il contient deux fichiers composer.json
et composer.lock
, et un vendor
répertoire.
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
- le répertoire où sont stockées les dépendances du projet.composer.lock
- un fichier contenant une liste de tous les packages installés, y compris la version des packages.composer.json
- un fichier décrivant le projet PHP et toutes les dépendances PHP.
Composer fournit des capacités de chargement automatique qui vous permettent d'utiliser des classes PHP sans avoir besoin de require
ou include
les fichiers.
Créez un fichier nommé testing.php
et collez le code suivant :
<?php
require __DIR__ . '/vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
Analysons le code ligne par ligne.
Dans la première ligne après la balise php d'ouverture, nous incluons le vendor/autoload.php
fichier généré automatiquement par Composer. Ce fichier chargera automatiquement toutes les bibliothèques requises.
Ensuite, nous aliasons Carbon\Carbon
comme Carbon
, et dans la dernière ligne, nous imprimons l'heure actuelle en utilisant le Carbon now
méthode.
Exécutez le script en tapant :
php testing.php
Le résultat devrait ressembler à ceci :
Now: 2020-08-17 21:08:45
Plus tard, si vous devez mettre à jour les packages du projet, saisissez :
composer update
La commande ci-dessus vérifiera les versions les plus récentes des packages installés, et si une version plus récente est trouvée et que la contrainte de version correspond à celle spécifiée dans le composer.json
, Composer mettra à jour le package.