Présentation de Composer

Rivals

Ancien staff
Inscription
27 Août 2016
Messages
1 705
Réactions
895
Points
13 104
header-composer.png

Salut à tous , on se retrouve aujourd'hui pour parler de dépendances mais notamment de Composer qui est un gestionnaire de packages pour PHP.
NOTION DE DEPENDANCES

Dans un premier temps il est important de connaître la notion de dépendances puisque tout l'intérêt de Composer est de pouvoir en installer. Une dépendance est un paquet, concrètement ce sont des classes PHP, qui vont vous permettre d'implanter de nouvelles fonctionnalités à vos projets.

Il faut savoir qu'il est possible d'installer des frameworks avec Composer tel que Laravel (cc @Snake's) ou CakePHP.

Il existe des dépendances pour tout et n'importe quoi, par exemple vous avez besoin d'effectuer des requêtes vers une API et vous souhaitez avoir un code simple et compréhensible et bien il existe un package nommé Guzzle qui va vous permettre de le faire.

D'ailleurs ce sera le paquet que nous installerons au cours de ce tutoriel.

INSTALLATION DE COMPOSER

Avant de démarrer l'installation je tiens à dire que je suis sous MacOS, à vous de faire en fonction de votre OS.

  1. Rendez-vous sur le site de .
  2. Puis dans la section Download.
  3. Ouvrez le Terminal et saisissez les lignes de commande qui sont disponibles sur la page.
Code:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '55d6ead61b29c7bdee5cccfb50076874187bd9f21f65d8991d46ec5cc90518f447387fb9f76ebae1fbbacf329e583e30') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Capture d’e*cran 2017-02-14 a* 16.24.45.png
  1. Vous obtiendrez un fichier composer.phar, maintenant nous allons rendre accessible notre commande composer à travers notre système pour se faire entrez la ligne de commande ci-dessous.
    Code:
    mv composer.phar /usr/local/bin/composer
  2. Puis tapez la commande composer --version afin de vérifier que la commande est bien disponible globalement.
Capture d’e*cran 2017-02-14 a* 16.27.09.png

L'installation est maintenant terminée, passons à l'installation de notre paquet Guzzle.

INSTALLATION DE GUZZLE

Avant de démarrer l'installation de Guzzle il est important et pratique de savoir que pour installer des paquets Composer utilise un repo, c'est à dire un répertoire dans lequel il va piocher le paquet correspondant à votre demande.

Le repo principale de Composer est , depuis le site de celui-ci vous avez l'opportunité de rechercher des paquets et de les installer par la suite avec Composer.

  1. Recherchons le paquet Guzzle.
    Capture d’e*cran 2017-02-14 a* 16.31.03.png
  2. Nous pouvons voir que nous tombons sur le bon paquet, de plus il possède un nombre d'installations très important puisque c'est un critère qualitatif.
  3. Ouvrons notre Terminal, puis rendons nous dans le dossier de notre projet celui dans lequel se trouve node code. Tapez la commande ci-dessous.
Code:
composer require guzzlehttp/guzzle
Capture d’e*cran 2017-02-14 a* 16.37.32.png
  1. Composer va créer un fichier composer.json qui va lui permettre d'obtenir la liste des paquets installés ainsi que leur version, c'est un fichier très important. Après avoir saisi la commande ci-dessus le paquet va s'installer avec ses propres dépendances dans un dossier nommé vendor.
  2. Dans mon cas j'ai un fichier index.php qui va être utilisé pour effectuer ce requête, c'est donc dans ce fichier que je vais devoir utiliser ce packet. Pour se faire il faut charger ce paquet nous allons utiliser l'autoloader de Composer pour pouvoir l'utiliser dans notre fichier.
    Code:
    <?php
    
    // on exécute le fichier autoload.php qui va charger les classes de nos paquets
    require 'vendor/autoload.php';
  3. Puis si nous descendons plus bas sur la page du paquet sur Packagist nous pouvons voir un exemple, nous allons essayer de récupérer le contenu d'une page, dans mon cas .
PHP:
<?php

// on exécute le fichier autoload.php qui va charger les classes de nos paquets
require 'vendor/autoload.php';

// objet
$client = new \GuzzleHttp\Client();

$response = $client->request('GET','https://raw.githubusercontent.com/laravel/laravel/master/.env.example');

// on affiche la réponse
echo $response->getBody();
Capture d’e*cran 2017-02-14 a* 20.46.03.png
QUELQUES COMMANDES

J'aimerais vous montrer quelques commandes plutôt utiles.

REMOVE

Cette commande vous permettra de supprimer un paquet de votre projet.

Exemple : composer remove guzzlehttp/guzzle

INIT

Cette commande vous permet de générer un fichier composer.json sans pour autant installer de paquets.

INFO

Cette commande vous permet d'obtenir des informations sur les dépendances installées avec notamment leur version ainsi qu'une description.

SEARCH

Cette commande vous permet de rechercher un package si vous précisez un mot clé.
Cette présentation est terminée, j'espère avoir été le plus clair et compréhensible possible.

Bonne soirée,
Rivals



 
Haut