Le "repository" principal pour les librairies php se trouve à l'adresse https://packagist.org/
Imaginons que nous ayons besoin d'une librairie qui nous permettra de faire appel à des services web avec des méthodes un peu comparables à celle de javascript (promise, await, async ...). Il existe un package qui permet cela : guzzle
Si l'on veut bénéficier de l'autoloader, il faudra commencer par
composer init
puis ajouter dans le fichier composer.json :
{ "name": "coopernet/composer", "authors": [ { "name": "yvandouenel", "email": "y.douenel@coopernet.fr" } ], "autoload": { "psr-4": { "App\\": "app/" } } }
Installation de guzzle
composer require guzzlehttp/guzzle
Ce qui va venir modifier le fichier composer.json :
{ "name": "coopernet/composer", "authors": [ { "name": "yvandouenel", "email": "y.douenel@coopernet.fr" } ], "autoload": { "psr-4": { "App\\": "app/" } }, "require": { "guzzlehttp/guzzle": "^7.0" } }
Enfin, il suffira d'appeler l'autoloader dans le fichier php (ici index.php) et appeler le package racine pour utiliser guzzle :
<?php require 'vendor/autoload.php'; $client = new \GuzzleHttp\Client(); $response = $client->request('GET', 'https://api.github.com/repos/guzzle/guzzle'); echo $response->getStatusCode(); // 200 echo $response->getHeaderLine('content-type'); // 'application/json; charset=utf8' echo $response->getBody(); // '{"id": 1420053, "name": "guzzle", ...}' // Send an asynchronous request. $request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org'); $promise = $client->sendAsync($request)->then(function ($response) { echo 'I completed! ' . $response->getBody(); }); $promise->wait();