Comment installer et utiliser Composer sur Debian 10

introduction

https://getcomposer.org [Composer] est un outil populaire de gestion des dépendances pour PHP, créé principalement pour faciliter l’installation et les mises à jour des dépendances de projets. Il vérifiera les autres packages dont dépend un projet spécifique et les installera pour vous, en utilisant les versions appropriées en fonction des exigences du projet. Composer est également couramment utilisé pour amorcer de nouveaux projets basés sur des frameworks PHP populaires, tels que Symfony et Laravel.

Dans ce guide, nous verrons comment installer et utiliser Composer sur un serveur Debian 10.

Conditions préalables

Pour compléter ce tutoriel, vous aurez besoin d’un serveur Debian 10 configuré en suivant le Debian 10 guide de configuration initiale du serveur , y compris un utilisateur régulier avec les privilèges + sudo +.

Étape 1 - Installation des dépendances

Avant de pouvoir télécharger et installer Composer, nous allons nous assurer que toutes les dépendances sont installées sur votre serveur.

Commencez par mettre à jour le cache du gestionnaire de paquets en lançant:

sudo apt update

Maintenant, installons les dépendances. Nous aurons besoin de + curl + pour pouvoir télécharger Composer et de + php-cli + pour l’installer et l’exécuter. Le paquetage + php-mbstring + est nécessaire pour fournir les fonctions d’une bibliothèque que nous utiliserons. + git + est utilisé par Composer pour télécharger les dépendances du projet et + unzip + pour extraire les paquetages compressés. Tout peut être installé avec la commande suivante:

sudo apt install curl php-cli php-mbstring git unzip

Une fois les conditions préalables installées, nous pouvons installer Composer lui-même.

Étape 2 - Télécharger et installer Composer

Composer fournit un installer, écrit en PHP. Nous allons le télécharger, vérifier qu’il n’est pas corrompu, puis l’utiliser pour installer Composer.

Assurez-vous d’être dans votre répertoire personnel, puis récupérez le programme d’installation en utilisant + curl +:

cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php

Ensuite, vérifiez que le programme d’installation correspond au hachage SHA-384 pour le dernier programme d’installation disponible sur la page [Composer Public Key / Signatures] [composer-sigs]. Copiez le hachage de cette page et stockez-le en tant que variable shell:

HASH=

Assurez-vous de remplacer le dernier hash par la valeur en surbrillance.

Exécutez maintenant le script PHP suivant pour vérifier que le script d’installation peut être exécuté en toute sécurité:

php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Vous verrez la sortie suivante.

Sortie

Installer verified

Si vous voyez «+ Installer endommagé +», vous devrez alors télécharger à nouveau le script d’installation et vérifier que vous utilisez le hachage correct. Exécutez ensuite la commande pour vérifier à nouveau le programme d’installation. Une fois que vous avez un installateur vérifié, vous pouvez continuer.

Pour installer + composer + globalement, utilisez la commande suivante qui téléchargera et installera Composer en tant que commande système nommée + composer +, sous + / usr / local / bin +:

sudo php composer-setup.php --install-dir= --filename=

Vous verrez le résultat suivant:

OutputAll settings correct for using Composer
Downloading...

Composer (version 1.8.6) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Pour tester votre installation, exécutez:

composer

Et vous verrez une sortie affichant la version et les arguments de Composer, semblable à ceci:

Output   ______
 / ____/___  ____ ___  ____  ____  ________  _____
/ /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                   /_/
Composer version 1.8.6 2019-06-11 15:03:05

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.
 -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug


. . .

Ceci vérifie que Composer est installé correctement sur votre système et qu’il est disponible sur l’ensemble du système.

Voyons maintenant comment utiliser Composer pour gérer les dépendances PHP.

Étape 3 - Utiliser Composer dans un projet PHP

Les projets PHP dépendent souvent de bibliothèques externes et la gestion de ces dépendances et de leurs versions peut s’avérer délicate. Composer résout ce problème en suivant vos dépendances et en facilitant leur installation par d’autres.

Pour utiliser Composer dans votre projet, vous aurez besoin d’un fichier + composer.json. Le fichier + composer.json indique à Composer les dépendances à télécharger pour votre projet et les versions de chaque package pouvant être installées. Cela est extrêmement important pour maintenir la cohérence de votre projet et éviter d’installer des versions instables qui pourraient éventuellement causer des problèmes de compatibilité ascendante.

Vous n’avez pas besoin de créer ce fichier manuellement, c’est facile de rencontrer des erreurs de syntaxe. Composer génère automatiquement le fichier + composer.json lorsque vous ajoutez une dépendance à votre projet à l’aide de la commande` + required`. Vous pouvez ajouter des dépendances supplémentaires de la même manière, sans qu’il soit nécessaire de modifier manuellement ce fichier.

Le processus d’utilisation de Composer pour installer un package en tant que dépendance dans un projet implique les étapes suivantes:

  • Identifiez le type de bibliothèque dont l’application a besoin.

  • Recherchez une bibliothèque open source appropriée sur Packagist.org, le référentiel de paquets officiel de Composer.

  • Choisissez le package sur lequel vous voulez compter.

  • Exécutez + composer require pour inclure la dépendance dans le fichier` + composer.json` et installer le paquet.

Essayons cela avec une application de démonstration.

Le but de cette application est de transformer une phrase donnée en une chaîne adaptée aux URL - un slug. Ceci est couramment utilisé pour convertir les titres de page en chemins d’URL (comme la dernière partie de l’URL de ce tutoriel).

Commençons par créer un répertoire pour notre projet. Nous l’appellerons * slugify *:

cd ~
mkdir slugify
cd slugify

Il est maintenant temps de rechercher sur Packagist.org un paquet pouvant nous aider à générer slugs. Si vous recherchez le terme «slug» sur Packagist, vous obtiendrez un résultat similaire à celui-ci:

image: https: //assets.digitalocean.com/articles/composer_debian10/packagist_slug_search.png [Recherche de packagiste]

Vous verrez deux numéros à droite de chaque paquet dans la liste. Le nombre en haut représente le nombre de fois où le paquet a été installé, et le nombre en bas indique le nombre de fois où un paquet a été joué sur https://github.com [GitHub]. Vous pouvez réorganiser les résultats de la recherche en fonction de ces chiffres (recherchez les deux icônes situées à droite de la barre de recherche). De manière générale, les paquets avec plus d’installations et plus d’étoiles ont tendance à être plus stables, car beaucoup de gens les utilisent. Il est également important de vérifier la pertinence de la description du paquet pour vous assurer que c’est ce dont vous avez besoin.

Nous avons besoin d’un convertisseur simple chaîne à chaîne. D’après les résultats de la recherche, le package + cocur / slugify semble bien correspondre, avec un nombre raisonnable d’installations et d’étoiles.

Les paquets sur Packagist ont un nom * vendeur * et un * paquet *. Chaque paquet a un identifiant unique (un espace de nom) dans le même format que GitHub utilise pour ses référentiels, sous la forme + / +. La bibliothèque que nous voulons installer utilise l’espace de noms + cocur / slugif +. Vous avez besoin de l’espace de noms pour pouvoir utiliser le package dans votre projet.

Maintenant que vous savez exactement quel package vous souhaitez installer, exécutez + composer require + pour l’inclure en tant que dépendance et générer également le fichier + composer.json + pour le projet:

composer require cocur/slugify

Le résultat suivant s’affiche lorsque Composer télécharge la dépendance:

OutputUsing version ^3.2 for cocur/slugify
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
 - Installing cocur/slugify (v3.2): Downloading (100%)
Writing lock file
Generating autoload files

Comme vous pouvez le constater à la sortie, Composer a automatiquement choisi la version du package à utiliser. Si vous vérifiez maintenant le répertoire de votre projet, il contiendra deux nouveaux fichiers: + composer.json et` + composer.lock`, et un répertoire + vendor:

ls -l
Outputtotal 12
-rw-r--r-- 1 sammy sammy   59 jul 15 13:53 composer.json
-rw-r--r-- 1 sammy sammy 2952 jul 15 13:53 composer.lock
drwxr-xr-x 4 sammy sammy 4096 jul 15 13:53 vendor

Le fichier + composer.lock + est utilisé pour stocker des informations sur les versions de chaque paquetage installées et garantit que les mêmes versions sont utilisées si quelqu’un d’autre clone votre projet et installe ses dépendances. Le répertoire + vendor + est l’endroit où se trouvent les dépendances du projet. Le dossier + vendor + ne doit pas nécessairement être validé dans le contrôle de version, vous devez uniquement inclure les fichiers * composer.json * et * composer.lock *.

Voyons rapidement les contraintes de version. Si vous vérifiez le contenu de votre fichier + composer.json, vous verrez quelque chose comme ceci:

cat composer.json
Output{
   "require": {
       "cocur/slugify": "^3.2"
   }
}

Vous remarquerez peut-être le caractère spécial + ^ + avant le numéro de version dans + composer.json. Composer prend en charge plusieurs contraintes et formats différents pour définir la version de package requise, afin de fournir une flexibilité tout en préservant la stabilité de votre projet. L’opérateur caret (+ ^ +) utilisé par le fichier + composer.json + généré automatiquement est l’opérateur recommandé pour une interopérabilité maximale, selon semantic versioning. Dans ce cas, il définit * 3.2 * comme version minimale compatible et autorise les mises à jour de toute version ultérieure à * 4.0 *.

De manière générale, vous n’avez pas besoin de modifier les contraintes de version dans votre fichier + composer.json. Cependant, certaines situations peuvent nécessiter la modification manuelle des contraintes, par exemple lorsqu’une nouvelle version majeure de votre bibliothèque requise est publiée et que vous souhaitez la mettre à niveau, ou lorsque la bibliothèque que vous souhaitez utiliser ne suit pas le contrôle de version sémantique.

Voici quelques exemples pour vous aider à mieux comprendre le fonctionnement des contraintes de version de Composer:

Constraint Meaning Example Versions Allowed

^1.0

>= 1.0 < 2.0

1.0, 1.2.3, 1.9.9

^1.1.0

>= 1.1.0 < 2.0

1.1.0, 1.5.6, 1.9.9

~1.0

>= 1.0 < 2.0.0

1.0, 1.4.1, 1.9.9

~1.0.0

>= 1.0.0 < 1.1

1.0.0, 1.0.4, 1.0.9

1.2.1

1.2.1

1.2.1

1.*

>= 1.0 < 2.0

1.0.0, 1.4.5, 1.9.9

1.2.*

>= 1.2 < 1.3

1.2.0, 1.2.3, 1.2.9

Pour une vue plus détaillée des contraintes de version de Composer, voir la documentation officielle.

Voyons ensuite comment charger des dépendances automatiquement avec Composer.

Étape 4 - Incluant le script de chargement automatique

Comme PHP ne charge pas automatiquement les classes, Composer fournit un script de chargement automatique que vous pouvez inclure dans votre projet pour obtenir le chargement automatique gratuit. Cela facilite beaucoup le travail avec vos dépendances.

La seule chose à faire est d’inclure le fichier + vendor / autoload.php dans vos scripts PHP avant toute instanciation de classe. Ce fichier est automatiquement généré par Composer lorsque vous ajoutez votre première dépendance.

Essayons-le dans notre application. Créez le fichier + test.php + et ouvrez-le dans votre éditeur de texte:

nano test.php

Ajoutez le code suivant qui introduit le fichier + vendor / autoload.php +, charge la dépendance + cocur / slugify + et l’utilise pour créer un slug:

test.php

<?php
require __DIR__ . '/vendor/autoload.php';
use Cocur\Slugify\Slugify;

$slugify = new Slugify();

echo $slugify->slugify('Hello World, this is a long sentence and I need to make a slug from it!');

Enregistrez le fichier et quittez votre éditeur.

Maintenant, lancez le script:

php test.php

Ceci produit le résultat + hello-world-this-is-a-long-phrase-and-i-need-to-make-a-slug-from-it +.

Les dépendances ont besoin de mises à jour lors de la sortie de nouvelles versions. Voyons comment gérer cela.

Étape 5 - Mise à jour des dépendances de projet

Chaque fois que vous souhaitez mettre à jour vos dépendances de projet avec des versions plus récentes, exécutez la commande + update:

composer update

Ceci vérifiera les versions les plus récentes des bibliothèques requises dans votre projet. Si une version plus récente est trouvée et compatible avec la contrainte de version définie dans le fichier + composer.json +, Composer remplacera la version précédente installée. Le fichier + composer.lock + sera mis à jour pour refléter ces modifications.

Vous pouvez également mettre à jour une ou plusieurs bibliothèques spécifiques en les spécifiant comme suit:

composer update

Assurez-vous de valider les modifications apportées aux fichiers + composer.json et` + composer.lock` après la mise à jour de vos dépendances. Ainsi, quiconque travaille dans le projet a accès aux mêmes versions de package.

Conclusion

Composer est un outil puissant que chaque développeur PHP devrait posséder. Dans ce tutoriel, vous avez installé Composer sous Debian 10 et l’avez utilisé dans un projet simple. Vous savez maintenant comment installer et mettre à jour des dépendances.

En plus de fournir un moyen simple et fiable de gestion des dépendances de projets, il établit également un nouveau standard de facto pour le partage et la découverte des packages PHP créés par la communauté.