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();