0% ont trouvé ce document utile (0 vote)
95 vues6 pages

Tutorial3 PHP Part2

Le document décrit un projet web en PHP visant à créer une API REST pour gérer des produits via des opérations CRUD. Il détaille la structure des fichiers nécessaires, les requêtes HTTP à utiliser, et les étapes pour configurer la base de données avec PhpMyAdmin. Des exemples de code PHP pour la connexion à la base de données et la gestion des requêtes sont également fournis.

Transféré par

israa.mhamdi7627
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
95 vues6 pages

Tutorial3 PHP Part2

Le document décrit un projet web en PHP visant à créer une API REST pour gérer des produits via des opérations CRUD. Il détaille la structure des fichiers nécessaires, les requêtes HTTP à utiliser, et les étapes pour configurer la base de données avec PhpMyAdmin. Des exemples de code PHP pour la connexion à la base de données et la gestion des requêtes sont également fournis.

Transféré par

israa.mhamdi7627
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Mini Projet Web LGLSI-2

Tutorial 3 : Php
Partie 2 : API REST et Bases de données

Objectif : créer une API Rest en PHP modélisant les CRUD (Create, Read, Update, Delete) sur
une table Product.

Le tableau suivant résume les différentes URL à interroger sur la ressource Product:

Ressource demandée Méthode Http Rôle


localhost/api/product/ get Renvoie tous les produits
localhost/api/product/{id} get Renvoie les détails du produit ayant l’id
fournit en argument
localhost/api/product post Ajoute un nouveau produit
localhost/api/product/{id} delete Supprime le produit dont l’id …
localhost/api/product/ put Modifie le produit s’il existe

!!! Avant de commencer : Créer un dossier « api » sous htdocs de Xampp pour y ajouter les codes
Php relatifs à l’API REST à créer.

Structure du projet à créer

Fichier Rôle
connexion.php Fichier contenant les paramètres de connexion avec la base de données
.htaccess Le fichier .htaccess est utilisé pour la configuration d’un site web sans devoir
modifier les fichiers de configuration du serveur. Nous allons utiliser ce fichier
pour réécrire les URL des différentes pages de notre site et pour y ajouter les
entêtes http requises pour le bon fonctionnement de notre API
product.php C’est le point d’entrée de l’API, ce fichier recoit la requête et analyse la type de
la méthode http, puis appelle la méthode ou la fonction nécessaire

Page | 1
Activité 1 : Utiliser PhpMyAdmin pour créer la structure de la table

1. Lancer Xampp Control Panel et démarrer les services Apache et MySql. Lancer Ensuite PhpMyAdmin en
cliquant sur le bouton « Admin » du Service MySql. Un navigateur sera lancé affichant l’application
PhpMyAdmin (user :root, pwd : '')

2
1

2. Créer une nouvelle base de données gestion comme suit :

2 3

Nom de la base à créer

3. Créer maintenant la table Product (graphiquement ou avec des commandes Sql selon votre choix)

1 2 3

4. Renseigner maintenant les différents champs de cette table ayant les champs (id, title, qte, price,
imageUrl)

Page | 2
N’oublier de mettre l’id auto-increment Puis cliquez sur « Enregistrer ».

5. Insérer maintenant des données dans votre table. Voici un exemple :

Activité 2 : fichier Php de connexion avec la Base de données

1- Créer un fichier « connexion.php » contenant un script Php afin de créer un objet nommé
connexion vers la base de données :

<?php
# Définition des paramètres de connexion
$servername = "localhost"; //adresse du serveur de la Base de données
$username = "root"; //utilisateur de la Base de données
$password = ""; //mot de passe de l’utilisateur
$base = "gestion"; //nom de la base de données

# Création de l’objet connexion


try{
$connexion = new PDO("mysql:host=$servername;dbname=$base",$username,$password);
}
catch(Exception $e)
{ echo $e->getMessage();}
Objet de connexion
?>

Rappelez vous de cette variable : c’est un objet qui sera utilisé


ensuite pour manipuler votre Base de données

Page | 3
2- Tester ce fichier en lançant un navigateur web et en accédant à
« localhost/api/connexion.php »: si aucun affichage n’ai obtenu, alors félicitation vous êtes
connectés avec succès à la base de données.

Activité 3 : fichier .htaccess

Sous le dossier « api », ajouter un fichier .htaccess et y ajouter :

a. Réécriture des URL : l’objectif est de rediriger la requête vers le fichier produit.php lors
de l’appel de l’url : localhost/api/produit/
b. Les entête http pour éviter le problème de CORS (Cross Origin Ressource Sharing)

Le fichier .htaccess doit alors avoir la structure suivante :

# Activation du mod rewrite d'Apache


RewriteEngine On

#Réécriture de l'URL de product.php vers product

RewriteRule ^product/([0-9])* product.php?id=$1 [L]

# Set the headers for the restful api


Header always set Access-Control-Allow-Origin http://localhost:4200
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "X-Requested-With, Content-Type, Origin,
Authorization, Accept, Client-Security-Token, Accept-Encoding"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"

Activité 4 : Le fichier produit.php

Le fichier produit.php joue un rôle très important, il doit analyser le type de la méthode http et agir
selon cette méthode.

Voici la structure de base de ce fichier pour récupérer un produit selon son ou bien la liste de tous
les produits.

Page | 4
<?php

switch($_SERVER['REQUEST_METHOD'])

{
case 'GET':
if($_GET["id"]==null)
getAllProducts();
else
getProduct($_GET["id"]);
break;
}

function getAllProducts()
{

//Etape 1 : préparation de la requête


$requete ="SELECT * from Product ";
//Etape 2 : connexion avec la base de données, création de l'objet connexion
require_once("connexion.php");
//Etape 3: exécuter la requête
$statement = $connexion->query($requete);
//Etape 4 : récupérer le résultat sous forme associative
$resultat = $statement->fetchAll(PDO::FETCH_ASSOC);
//ajouter l'entête pour spécifier le format retourné par le fichier
header('Content-type:application/json') ;

//si pas de produits


if($resultat==null)
{
http_response_code(204);
$msg = array("erreur"=> "pas de produits");
json_encode($msg);
}
else
{ //Etape 5 : convertir les données en json
$json = json_encode($resultat);
//afficher les données json
echo $json;
}

Page | 5
function getProduct($id)
{

//Etape 1 : préparation de la requête


$requete ="SELECT * from Product where id = $id ";
//Etape 2 : connexion avec la base de données, création de l'objet connexion
require_once("connexion.php");
//Etape 3: exécuter la requête
$statement = $connexion->query($requete);
//Etape 4 : récupérer le résultat sous forme associative
$resultat = $statement->fetch(PDO::FETCH_ASSOC);
//ajouter l'entête pour spécifier le format retourné par le fichier
header('Content-type:application/json') ;

//si pas de produits


if($resultat==null)
{
http_response_code(204);
$msg = array("erreur"=> "produit inexistant");
json_encode($msg);
}
else
{ //Etape 5 : convertir les données en json
$json = json_encode($resultat);
//afficher les données json
echo $json;
}
}
?>

Page | 6

Vous aimerez peut-être aussi