2. 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
3. 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
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.
9
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.
10
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.
11
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
12
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.
13
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.
14
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.
15
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.
16
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.
19
20. • 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();
?>
Générer une exception
21. • 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 !';
?>
Lancer une exception à travers le programme
22. • 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();
}
?>
Intercepter / attraper une exception générée
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.
24