TP Web Service
S. Salva
TP4 PHP Slim
|
PHP, Composer, Framework Slim
Développement d'une application web utilisant Slim pour gérer une liste d'employés.
A
curl -sS https://getcomposer.org/installer | php
B
Créez un répertoire et faites :
php composer.phar require slim/psr7
php composer.phar require slim/slim:"XXX.*" (XXX version 4 actuellement :-))
Créez un répertoire public
et un fichier index.php
dans ce répertoire. Le code de votre service sera dans le fichier
index.
Exemple de code (voir cours) :
<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
$loader = require __DIR__ . '/../vendor/autoload.php';
//for namespace BL PSR4 here namespace ; dir
$loader->addPsr4('BL\\', __DIR__);
$app = AppFactory::create();
$app->get('/', function (Request $request, Response
$response, $args) {
$response->getBody()->write("Hello
world!");
return $response;
});
$app->run();
Au cas ou, si vous souhaitez mettre à jours vos dépendences,
faites php composer.phar update
A
Utilisez Slim pour développer un service web qui expose les routes suivantes:
Pour commencer , vous pouvez manipuler une collection simple d'Employés (pas de bd). Il vous faut donc une entité. La sérialisation sera faite en JSON.
Pour lancez votre service faites php -S localhost:8888
B
Complétez le code pour avoir une gestion des erreurs. Ajoutez les middlewares (voir cours) et ajoutez vos exceptions.
C
A
Utilisez Guzzle pour créer un client qui consomme l'API Rest précédente développée avec Slim. Votre client utilisera les différentes méthodes (GET, POST, PUT, DELETE) pour envoyer des requêtes à l'API Rest et traiter les réponses.
Pour faire un client, faites un autre répertoire (autre projet) et utilisez la commandecomposer require guzzlehttp/guzzle:^7.0
.
B
Utilisez les fonctionnalités de Guzzle pour gérer les erreurs (gestion des Exceptions, voir cours)