Cours php & Mysql - 4éme partie
description
Transcript of Cours php & Mysql - 4éme partie
Cours PHP/MySQL4é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'erreurecho $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éecar une exception est lancée pour interromprel'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.
<?phptry {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