TP Web Service

S. Salva


TP4 PHP Slim


1. Outils et Objectifs

PHP, Composer, Framework Slim

Développement d'une application web utilisant Slim pour gérer une liste d'employés.

2. Setup

A

Installez Composer. Allez à doc composer et tapez
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

3. Implémentation de service

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

Suivant le temps qu'il vous reste (il y a aussi un client Guzzle à faire et ce n'est pas optionnel), faites une table Employe dans MYSQL et utilisez de vraies données dans votre service. Pour faire le lien avec la BD que faut-il utiliser :-)?

Rappel:
Création d'une table avec l'outil PhpMyAdmin. Choisissez une des tables liées au projet que vous ferez (ex: table tache ou news)

4. Implémentation d'un client Guzzle

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 commande composer require guzzlehttp/guzzle:^7.0.

B

Utilisez les fonctionnalités de Guzzle pour gérer les erreurs (gestion des Exceptions, voir cours)