Vous êtes sur la page 1sur 28

Cours PHP/MySQL

4éme partie

SISSOKO Ismail
Séance précédente
• Projet: La création de la page d’accueil du site
• Projet: La création des autres pages statiques
• Les formulaires
• Sessions et cookies
• L'envoi de mail
• Introduction aux bases de données et au MySQL en
particulier
• Introduction au langage SQL
• Modélisation Merise d'une base de données (Exemple de
notre projet de site e-commerce)
• Communiquer entre PHP et MySQL
• Projet: Authentification au site
• Projet: Affichage des catégories de produits
Séance d'aujourd'hui
• Projet: Listing des produits
• Projet: Listing de produits par catégorie
• Projet: Ajout de produits au panier
• Projet: Retirer des produits depuis le panier
• Les concepts fondamentaux de la programmation
orientée objet
• La programmation orientée objet en PHP
• Les exceptions
• Les fichiers
• Projet: Utilisation des concepts orientés objet
4

Projet: Listing des produits


5

Projet: Listing de produits par


catégorie
6

Projet: Ajout de produits au panier


7

Projet: Retirer des produits depuis le


panier
8

Les concepts fondamentaux de la


programmation orientée objet
9

La programmation fonctionnelle
• Les programmes sont composés d'une série de
fonctions, qui ensemble, assurent certains services.

• Son avantage principal est la factorisation des


comportements.

• Son défaut principal est la complexité de


maintenance du code dus au chaînage des fonctions
à cause de la factorisation des comportements.
10

La programmation orienté objet


• Les programmes sont composés de classes
représentant des entités du monde physique
(voiture, livre,…etc)

• Ses avantages: facilité d'organisation,


réutilisation, facilité de correction, facilite la
conception car elle décrit les entités comme dans
le monde réel.
11

OPP: Qu’est ce qu’une classe ?


• Une classe, est un type de données abstrait,
caractérisé par des propriétés (ses attributs et
ses méthodes) communes à des objets et elle
permet de créer des objets possédant ces
propriétés.
12

OPP: Qu’est ce qu’un objet ?


• Un objet est une entité comportant des
frontières précises et qui possède une identité
(un nom).

• De plus, un ensemble d'attributs caractérisent


l'état d'un objet, et l'on dispose d'un ensemble
d'opérations (les méthodes) qui permettent
d'agir sur le comportement de l'objet.

• Un objet est l'instance d'une classe


13

OPP: L'encapsulation
• L'encapsulation consiste à masquer les détails
d'implémentation d'un objet.

• L'encapsulation facilite l'évolution d'une application car


elle stabilise l'évolution des objets.

• Elle garantit de plus l'intégrité des données vu qu'elle


permet d'interdire l'accès direct aux attributs des objets
(on doit alors passer par des assesseurs).

• Un assesseur étant une méthode d'accès pour connaître


ou modifier la valeur d'un attribut d'un objet.
14

OPP: L'héritage
• L'héritage est un mécanisme de transmission des propriétés d'une classe
(ses attributs et ses méthodes) vers une sous-classe (la sous-classe héritant
de la classe principale).

• Grâce à l'héritage, une classe peut aussi être spécialisée en d'autres classes,
afin d'y ajouter des caractéristiques spécifiques (ajout de méthodes par
exemple) ou d'en adapter certaines.

• Plusieurs classes peuvent aussi être généralisées en une classe qui les
factorise, et ce, afin de regrouper les caractéristiques communes d'un
ensemble de classes.

• La spécialisation et la généralisation permettent de construire des


hiérarchies de classes.

• L'avantage principal de l'héritage est qu'il vous permet de d'éviter la


duplication de code, et il encourage à la réutilisation de même code.
15

OPP: Le polymorphisme
• Le polymorphisme représente la faculté d'une
méthode à pouvoir s'appliquer à des objets de
classes différentes. Il augmente donc la
généricité du code.
16

OPP: L'agrégation
• L'agrégation constitue une relation entre deux
classes, spécifiant que les objets d'une classe
sont des composants de l'autre classe.

• Une relation d'agrégation permet donc de définir


des objets composés d'autres objets.

• L'agrégation permet d'assembler des objets de


base, afin de construire des objets plus
complexes.
17

La programmation orientée objet en


PHP
18

Les exceptions
19

Les exceptions
• Le mécanisme des exceptions a été introduit à PHP
dans sa version 5 en complément de son nouveau
modèle orienté objet.

• Les exceptions permettent de simplifier,


personnaliser et d'organiser la gestion des erreurs
dans un programme.

• Le mot « erreurs » ne signifie pas « bug », qui est un


comportement anormal de l'application développée,
mais plutôt un cas exceptionnel à traiter
différemment dans le déroulement du programme.
Générer une exception
• La création d'une exception est réalisée par l'appel au
constructeur de la classe native Exception
<?php

// Création de l'objet Exception


$e = new Exception("Une erreur s'est produite");

// Affiche le message d'erreur


echo $e->getMessage();

?>
Lancer une exception à travers le programme
• Le lancement d'une exception à travers le programme est
réalisée grâce au mot-clé « throw »
<?php

if (isset($_GET['id']) && ! (int)$_GET['id'])


{
throw new Exception('Le paramètre id doit être un entier !');
}

/* Cette ligne ne sera jamais exécutée


car une exception est lancée pour interrompre
l'exécution normale du programme */

echo 'Bonjour !';

?>
Intercepter / attraper une exception générée
• PHP dispose d'une structure conditionnelle capable
d'intercepter les exceptions afin de permettre
d'appliquer des traitements particuliers.
<?php
try {
if (isset($_GET['id']) && ! (int)$_GET['id'])
{
throw new Exception('Le paramètre id doit être un entier !');
}

echo 'Bonjour !';


}
catch(Exception $e)
{
echo "L'erreur suivante a été générée: <br>";
echo $e->getMessage();
}
?>
23

Les fichiers
24

Les droits sur les fichiers


• r: Ouvre le fichier en lecture seule.

• r+: Ouvre le fichier en lecture et écriture.

• a: Ouvre le fichier en écriture seule et si le fichier


n'existe pas, il est automatiquement créé.

• a+: Ouvre le fichier en lecture et écriture. Si le


fichier n'existe pas, il est créé automatiquement.
Ouvrir et fermer un fichier

<?php

$file = fopen('compteur.txt', 'r+');

fclose($file);

?>
Lire un fichier

<?php

$file = fopen('compteur.txt', 'r+');

$ligne = fgets($file);

fclose($file);

?>
Ecrire dans un fichier

<?php

$file = fopen('compteur.txt', 'r+');

$pagesVues = fgets($file);
$pagesVues++;
fseek($file, 0);
fputs($file, $pagesVues);

fclose($file);

echo '<p>Cette page a été vue ' . $pagesVues . ' fois !</p>';

?>
28

Projet: Utilisation des concepts


orientés objet