Recherche de site Web

Comment installer et utiliser Composer sur votre VPS exécutant Ubuntu


Statut : Obsolète

Cet article couvre une version d'Ubuntu qui n'est plus prise en charge. Si vous gérez actuellement un serveur exécutant Ubuntu 12.04, nous vous recommandons vivement de mettre à niveau ou de migrer vers une version d'Ubuntu prise en charge :

  • Mettez à niveau vers Ubuntu 14.04.
  • Mettre à niveau d'Ubuntu 14.04 vers Ubuntu 16.04
  • Migrer les données du serveur vers une version prise en charge

Raison : Ubuntu 12.04 a atteint sa fin de vie (EOL) le 28 avril 2017 et ne reçoit plus de correctifs de sécurité ni de mises à jour. Ce guide n'est plus maintenu.

Voir plutôt :
Ce guide peut encore être utile comme référence, mais il peut ne pas fonctionner sur d'autres versions d'Ubuntu. Si disponible, nous recommandons fortement d'utiliser un guide rédigé pour la version d'Ubuntu que vous utilisez. Vous pouvez utiliser la fonction de recherche en haut de la page pour trouver une version plus récente.

Introduction

Composer est un excellent outil de gestion des dépendances pour PHP. Ce qu'il fait, c'est qu'il suit les bibliothèques que vous déclarez nécessaires pour votre projet et les récupère et les installe pour vous. Ce n’est pas un gestionnaire de paquets à proprement parler car il n’est pas utilisé globalement par défaut, mais plutôt dans chaque projet individuel que vous pouvez avoir.

À quoi cela sert-il ? Supposons que vous ayez un projet d'application qui dépend de quelques bibliothèques qui à leur tour peuvent même dépendre d'autres. Une fois que vous déclarez ces dépendances dans un petit fichier .json, Composer retrouvera ces bibliothèques et les installera pour vous.

Dans ce tutoriel, nous allons installer Composer sur un VPS et voir comment il fonctionne et ce que nous pouvons en faire. Pour ce faire, j'utiliserai un serveur exécutant Ubuntu avec la pile LAMP déjà installée. En ce qui concerne les exigences spécifiques de Composer, il fonctionne sur Linux, OS X et Windows de la même manière, mais il nécessite que vous ayez PHP 5.3.2 ou une version supérieure installée.

Assurez-vous que vous avez tous les prérequis installés :

sudo apt-get install php5 git php5-curl

Installation

Tout d'abord, vous devez télécharger Composer dans votre dossier de projet. Créons un dossier vide à cet effet dans notre dossier racine web Apache /var/www appelé my_project :

cd /var/www
mkdir my_project
cd my_project

Téléchargez Composer dans ce dossier avec la commande suivante :

curl -sS https://getcomposer.org/installer | php

Vous devriez voir un message de succès qui ressemble à ceci :

All settings correct for using Composer
Downloading...

Composer successfully installed to: /var/www/my_project/composer.phar
Use it: php composer.phar

Maintenant, si vous vérifiez dans le dossier du projet, vous verrez qu'un seul fichier a été téléchargé : composer.phar - un fichier archive PHP qui peut être exécuté depuis la ligne de commande.

Si vous êtes dans un dossier différent de votre projet mais que vous ne souhaitez pas revenir dans le dossier de votre projet pour télécharger Composer, vous pouvez spécifier l'option --install-dir et il le téléchargera là où vous le spécifiez :

curl -sS https://getcomposer.org/installer | php -- --install-dir=/var/www/another_folder

Cette commande peut être exécutée depuis n'importe où et elle installera Composer dans another_folder situé dans /var/www. Pour vérifier si Composer fonctionne correctement, vous pouvez utiliser la commande suivante qui affichera une liste des commandes disponibles :

php composer.phar

Utilisation de Composer

Pour utiliser Composer dans votre projet, vous aurez besoin d’un fichier : composer.json. Dans ce fichier, vous définirez les dépendances de votre projet. Supposons que notre projet dépende de la bibliothèque Linux-Console.net qui aide à interagir avec l’API Linux-Console.net. Créons donc le fichier :

nano composer.json

Et dans ce fichier, vous pouvez coller ce qui suit :

{
    "require": {
        "toin0u/digitalocean": "1.2.1"
    }
}

Enregistrez le fichier et quittez. Avec ce simple bloc de code, vous indiquez que votre projet nécessite cette bibliothèque (appelée digitalocean) créée par le fournisseur toin0u. Après les deux-points, vous écrivez la version dont vous avez besoin - dans ce cas, il s'agit de 1.2.1. Ici, vous pouvez spécifier n'importe quelle version que vous souhaitez et même utiliser des caractères génériques. Mais où obtenez-vous ces informations sur les packages ?

Il existe un excellent site web où vous pouvez trouver de nombreuses bibliothèques avec toutes les informations nécessaires à spécifier dans le fichier composer.json : Packagist. La bibliothèque API Linux-Console.net se trouve également sur Packagist et vous pouvez y vérifier exactement ce que vous devez spécifier dans le bloc require.

Pour utiliser des caractères génériques pour la version, vous pouvez spécifier quelque chose comme ceci :

"toin0u/digitalocean": "1.2.*"

Cela correspondra à toute version qui commence par 1.2 (1.2.0, 1.2.1, etc.). De plus, vous pouvez spécifier plusieurs bibliothèques dépendantes, pas seulement une. Vous pouvez le faire en ajoutant plusieurs entrées dans le bloc require :

"require": {
        "toin0u/digitalocean": "1.2.1",
        "acme/foo": "1.0"
}

OK, maintenant que votre projet a spécifié ses dépendances, vous devez exécuter une commande pour que Composer les récupère et les installe dans votre projet :

php composer.phar install

Cela trouvera la dernière version du paquet correspondant au numéro que nous avons spécifié et le téléchargera dans un dossier appelé /vendor directement dans votre projet. Dans notre exemple, nous trouverons maintenant la bibliothèque dans le dossier vendor/toin0u/digitalocean. De plus, Composer crée un fichier composer.lock dans lequel il précise les versions exactes des paquets installés et verrouille le projet à ces versions.

Le but du fichier .lock est d'empêcher Composer d'installer d'autres versions dans votre projet. Ainsi, lorsque vous exécutez la commande d'installation, Composer vérifiera d'abord ce fichier et installera ce qui y est spécifié plutôt que ce que le fichier .json indique. C'est très utile car si vos dépendances sont assez strictes et que d'autres personnes doivent déployer vos projets, vous pouvez être sûr que exactement la même version de la bibliothèque est utilisée.

Et comme nous l'avons vu, s'il n'y a pas de fichier .lock, Composer en créera un basé sur les dépendances qu'il a installées à partir du fichier .json. Mais si vous souhaitez effectivement écraser le fichier .lock et mettre à jour les bibliothèques dépendantes vers des versions plus récentes, vous pouvez exécuter la commande suivante :

php composer.phar update

Cela permettra d'obtenir les dernières versions stables des bibliothèques dépendantes qui correspondent aux critères dans le fichier composer.json et de remplacer le fichier composer.lock par les nouvelles dépendances. Si vous souhaitez uniquement qu'une bibliothèque particulière soit mise à jour (ce qui est très probablement le cas dans la plupart des situations), vous pouvez exécuter la commande update et passer les packages que vous souhaitez mettre à jour en tant qu'options dans le format suivant :

php composer.phar update vendor/package vendor/package2

Ou vous pouvez utiliser des caractères génériques pour mettre à jour tous les paquets d'un fournisseur spécifique :

php composer.phar update vendor/*

Chargement automatique

Une autre chose intéressante à propos de Composer est sa fonctionnalité d'autochargement. Pour les bibliothèques qui fournissent des informations d'autochargement, Composer génère automatiquement un fichier autoload.php directement dans le dossier /vendor que vous pouvez inclure dans votre projet. Ensuite, vous pouvez directement commencer à utiliser les classes de ces bibliothèques. Dans votre projet PHP, vous pouvez simplement spécifier ceci :

require 'vendor/autoload.php';

Et vous êtes prêt à partir.

Conclusion

Composer est un outil largement utilisé dans le monde de PHP. Il existe de nombreux projets et frameworks qui utilisent Composer pour gérer et installer leurs packages et dépendances. Il est donc assez important de se familiariser avec son fonctionnement.