Comment installer et utiliser Composer sur Debian 8

introduction

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.

Ce tutoriel montrera comment installer et démarrer avec Composer sur un serveur Debian 8.

Conditions préalables

Pour ce tutoriel, vous aurez besoin de:

Étape 1 - Installation des dépendances

Avant de télécharger et d’installer Composer, nous devons nous assurer que toutes les dépendances nécessaires sont installées sur notre serveur.

Commencez par mettre à jour le cache du gestionnaire de packages.

sudo apt-get update

Maintenant, installons les dépendances. Nous aurons besoin de + curl + pour télécharger Composer et de + php5-cli +, un paquet PHP, pour l’installer et le faire fonctionner. Composer utilise + git +, un système de contrôle de version, pour télécharger les dépendances du projet. Vous pouvez installer ces trois packages en même temps avec cette commande:

sudo apt-get install curl php5-cli git

Maintenant que les dépendances essentielles sont installées, poursuivons et installons Composer lui-même.

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

Nous suivrons les instructions telles qu’elles sont écrites dans Composer’s documentation officielle avec une petite modification pour installer Composer globalement sous + / usr / local / bin +. Cela permettra à tous les utilisateurs du serveur d’utiliser Composer.

Téléchargez le programme d’installation dans le répertoire + / tmp +.

php -r "copy('https://getcomposer.org/installer', '/tmp/composer-setup.php');"

Visitez la page composer et signatures du compositeur et copiez la chaîne SHA-384 en haut. Ensuite, exécutez la commande suivante en remplaçant «++» par la chaîne que vous avez copiée.

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

Cette commande vérifie le hachage du fichier que vous avez téléchargé avec le hachage correct du site Web de Composer. Si cela correspond, cela va imprimer * Installation vérifiée *. Si cela ne correspond pas, le message * Installer corrompu * sera imprimé. Dans ce cas, vous devez vérifier que vous avez bien copié la chaîne SHA-384 correctement.

Ensuite, nous installerons Composer. Pour l’installer globalement sous + / usr / local / bin +, nous utiliserons l’indicateur + - install-dir +; + - filename + indique au programme d’installation le nom du fichier exécutable de Composer. Voici comment faire cela en une seule commande:

sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

Vous verrez un message comme celui-ci:

OutputAll settings correct for using Composer
Downloading...

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

Vous pouvez vérifier que Composer est correctement installé en vérifiant sa version.

composer --version

Vous devriez voir la version qui a été installée. À ce moment-là, la version est la suivante:

Version du compositeur

Composer version 1.3.2 2017-01-27 18:23:41

Enfin, vous pouvez supprimer en toute sécurité le script d’installation, car vous n’en avez plus besoin.

rm /tmp/composer-setup.php

Composer est maintenant configuré et fonctionne, en attente d’être utilisé par votre projet. Dans la section suivante, vous allez générer le fichier + composer.json +, qui comprend les bibliothèques PHP dont dépend votre projet.

Étape 3 - Génération du fichier composer.json

Pour utiliser Composer dans un 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. Il est important de maintenir la cohérence de votre projet et d’é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; il est facile de rencontrer des erreurs de syntaxe si vous le faites. Composer génère automatiquement le fichier + composer.json lorsque vous ajoutez une dépendance à votre projet à l’aide de la commande` + required`. Des dépendances supplémentaires peuvent également être ajoutées 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 généralement les étapes suivantes:

  • Identifier 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 officiel de Composer.

  • Choisissez le forfait sur lequel vous voulez compter

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

Nous verrons comment cela fonctionne dans la pratique avec une simple application de démonstration.

Le but de cette application est de transformer une phrase donnée en un slug, qui est une chaîne conviviale pour les URL. Ceci est 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 le projet. Nous l’appellerons * slugify *:

cd ~
mkdir slugify
cd slugify

Ensuite, recherchons la bibliothèque que nous devons utiliser.

Recherche de paquets sur Packagist

Ensuite, nous rechercherons sur Packagist un paquet permettant de générer des slugs. Si vous recherchez «slug», vous verrez une liste de paquets. Sur le côté droit de chaque package de la liste, vous verrez deux chiffres: le nombre en haut correspond au nombre de fois où le package a été installé et le nombre en bas indique le nombre de fois où un package a été joué sur GitHub.

De manière générale, les paquets avec plus d’installations et d’étoiles ont tendance à être plus stables car beaucoup de gens les utilisent. Il est également important de vérifier la description du paquet pour s’assurer qu’il correspond vraiment à ce que vous recherchez.

Ce dont nous avons besoin, c’est d’un simple convertisseur chaîne à chaîne. À titre d’exemple, nous allons utiliser le paquetage + cocur / slugify +. Cela semble être un bon match car il y a un nombre raisonnable d’installations et d’étoiles.

Vous remarquerez que les packages sur Packagist ont un nom de fournisseur et un nom de package. Chaque paquet a un identifiant unique (un espace de nom) dans le même format que GitHub utilise pour ses référentiels: + vendor / package +. La bibliothèque que nous voulons installer utilise l’espace de noms + cocur / slugify +. L’espace de noms est ce dont nous avons besoin pour pouvoir utiliser le paquet dans notre projet.

Maintenant que nous avons identifié la bibliothèque que nous voulons, ajoutons-la au fichier + composer.json.

Exiger un colis

Nous pouvons exécuter + composer require + pour inclure la bibliothèque en tant que dépendance et générer également le fichier + composer.json + pour le projet:

composer require
OutputUsing version ^2.3 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 (v2.3) 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 Feb  1 13:43 composer.json
-rw-r--r-- 1 sammy sammy 2896 Feb  1 13:43 composer.lock
drwxr-xr-x 4 sammy sammy 4096 Feb  1 13:43 vendor

Le fichier + composer.lock + est utilisé pour stocker des informations sur les versions de chaque paquetage installées et pour s’assurer 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 être validé dans le contrôle de version; vous devez uniquement inclure les fichiers + composer.json + et + composer.lock +.

Vous remarquerez peut-être que le fichier + composer.lock + contient des informations spécifiques sur la version des bibliothèques PHP dont dépend notre projet. Composer utilise une syntaxe spéciale pour limiter les bibliothèques à des versions spécifiques. Voyons comment cela fonctionne.

Comprendre les contraintes de version

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

cat composer.json

Sortie

{
   "require": {
       "cocur/slugify": "^2.3"
   }
}

Il y a un signe '+ ^ + avant le numéro de version. 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 après le contrôle de version sémantique. Dans ce cas, il définit * 1.3 * comme version minimale compatible et autorise les mises à jour de toute version ultérieure à * 2.0 *. Vous pouvez obtenir plus d’informations sur la raison d’être des versions dans Page de versioning du Composer.

Jusqu’à présent, nous avons vu comment ajouter et restreindre les bibliothèques PHP dont notre projet a besoin avec Composer à l’aide du fichier + composer.json +. L’étape suivante consiste à utiliser réellement ces bibliothèques dans notre application. À cette fin, Composer fournit le fichier + autoload.php + qui facilite le processus de chargement des bibliothèques externes.

Étape 4 - Incluant le script de chargement automatique

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 et la définition de vos propres espaces de noms. La seule chose à faire est d’inclure le fichier + vendor / autoload.php dans vos scripts PHP avant toute instanciation de classe.

Revenons à l’exemple d’application + slugify +. En utilisant + nano + ou votre éditeur de texte favori, créez un script + test.php + où nous utiliserons la bibliothèque + cocur / slugify +.

nano test.php

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!');

Vous pouvez exécuter le script en ligne de commande avec:

php test.php

Cela devrait produire la sortie:

Outputhello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it

Vous avez entièrement configuré Composer, mais poursuivez votre lecture pour savoir comment gérer l’installation.

Étape 5 - Mise à jour des dépendances Composer et Project (facultatif)

Pour mettre à jour Composer lui-même, vous pouvez utiliser la commande intégrée + self-update + fournie. Comme Composer est installé de manière globale, vous devez exécuter la commande avec les privilèges root.

sudo -H composer self-update

Vous pouvez mettre à jour une ou plusieurs bibliothèques spécifiques en les listant spécifiquement avec + composer update.

composer update /

Si vous souhaitez mettre à jour toutes vos dépendances de projet, 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 +, elle remplacera la version précédente installée. Le fichier + composer.lock + sera mis à jour pour refléter ces modifications.

Conclusion

Composer est un outil puissant que chaque développeur PHP devrait posséder. 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é.

Dans ce tutoriel, nous avons brièvement décrit les bases de Composer: comment l’installer, comment créer un projet et trouver les packages qui le concernent, et comment le maintenir. Pour en savoir plus, vous pouvez explorer la official Composer documentation.