Cours PHP/MySQL
4éme partie
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
Projet: Listing des produits
4
Projet: Listing de produits par
catégorie
5
Projet: Ajout de produits au panier
6
Projet: Retirer des produits depuis le
panier
7
Les concepts fondamentaux de la
programmation orientée objet
8
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
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
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
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
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
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
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
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
La programmation orientée objet en
PHP
17
Les exceptions
18
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
• 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
• 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
• 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
Les fichiers
23
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
<?php
$file = fopen('compteur.txt', 'r+');
fclose($file);
?>
Ouvrir et fermer un fichier
<?php
$file = fopen('compteur.txt', 'r+');
$ligne = fgets($file);
fclose($file);
?>
Lire 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>';
?>
Ecrire dans un fichier
Projet: Utilisation des concepts
orientés objet
28

Cours php & Mysql - 4éme partie

  • 1.
  • 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
  • 4.
  • 5.
    Projet: Listing deproduits par catégorie 5
  • 6.
    Projet: Ajout deproduits au panier 6
  • 7.
    Projet: Retirer desproduits depuis le panier 7
  • 8.
    Les concepts fondamentauxde la programmation orientée objet 8
  • 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 cequ’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 cequ’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'encapsulationconsiste à 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éritageest 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égationconstitue 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
  • 17.
  • 18.
  • 19.
    Les exceptions • Lemé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éationd'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 lancementd'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 disposed'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
  • 23.
  • 24.
    Les droits surles 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
  • 25.
    <?php $file = fopen('compteur.txt','r+'); fclose($file); ?> Ouvrir et fermer un fichier
  • 26.
    <?php $file = fopen('compteur.txt','r+'); $ligne = fgets($file); fclose($file); ?> Lire un fichier
  • 27.
    <?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>'; ?> Ecrire dans un fichier
  • 28.
    Projet: Utilisation desconcepts orientés objet 28