php poo - Td corrigé
L'instantiation d'un objet à partir d'une classe s'effectue avec le mot clé new. On
affecte le ... Deux méthodes de même nom ne peuvent co-exister au sein de la
même classe. ..... Math de Java. ..... Exercice. Implémentez le schéma suivant.
Corrigé. Cf ExoAbstractFinal.php. ...... trigger_error('Le clônage n'est pas
autorisé.
Part of the document
PHP
Et
POO
TABLE DES MATIERES
Chapitre 1 LES CLASSES ET LES OBJETS 4
1.1 Présentation générale 5
1.1.1 Généralités 5
1.1.2 Représentation graphique 5
1.1.3 Les objets 5
1.1.4 Principales caractéristiques objet de PHP5 5
1.2 Les classes en PHP 5 6
1.2.1 Syntaxe de définition d'une classe 6
1.2.2 Les propriétés et les méthodes 6
1.2.3 Instantiation d'un objet 8
1.2.4 Exemple complet 9
1.2.5 Portée des attributs et des méthodes 10
1.2.6 Le polymorphisme en PHP 11
1.3 Les accesseurs (__set et __get) 13
1.4 Les constructeurs (__construct) 14
1.4.1 Définition 14
1.4.2 Exemple 14
1.5 Les destructeurs (__destruct) 15
1.6 L'héritage 16
1.6.1 Définition 16
1.6.2 Représentation graphique 16
1.6.3 Syntaxe 16
1.6.4 Exemple complet 17
1.6.5 Héritage et surcharge 18
1.6.6 Héritage et transtypage 20
1.7 Compléments 23
1.7.1 Les constantes de classe 23
1.7.2 Les opérateurs parent, self et :: 24
1.7.3 Méthode statique, variable statique 25
1.7.4 Classe abstraite 33
1.7.5 Classes et méthodes Final 36
1.8 Linéariser les objets (Sérialiser, désérialiser) 38
1.8.1 La sérialisation 38
1.8.2 La désérialisation 38
1.8.3 Sérialisation et désérialisation Fichier 39
1.8.4 Sérialisations et désérialisations Fichier 40
1.8.5 Les méthodes __sleep() et __wakeup(). 43
1.9 Les interfaces 46
1.10 Parcourir les membres d'une classe 51
1.10.1 Via une méthode interne 51
1.10.2 Via la fonction get_object_vars($objet) 52
1.10.3 Via l'interface Iterator de PHP 53
1.11 DIVERS 56
1.11.1 Les méthodes magiques 56
1.11.2 La méthode __toString() 56
1.11.3 Cloner un objet 57
1.11.4 La méthode __call(methode, arguments) 58
1.11.5 L'héritage et les méthodes __set() et __get(). 62
1.11.6 La fonction __autoload() 63
1.11.7 Méthodes diverses 65
1.11.8 La comparaison d'objets 69
1.12 Relations Inter-Classes : Association, Agrégation et Composition
70
1.12.1 Association binaire de type Père-Fils 71
1.12.2 Association binaire 73
1.12.3 Association n-aires 76
1.12.4 Association avec une classe d'association 77
1.12.5 Comparaison Agrégation-Composition 78
1.12.6 Agrégation 79
1.12.7 Composition 82
1.13 POO ET GESTION DES EXCEPTIONS 86
1.13.1 Rappel sur la gestion des erreurs avec PHP 86
1.13.2 Introduction à la gestion d'exception 91
1.13.3 Créez votre propre classe d'Exception. 93
1.13.4 Levée d'exception automatisée 96
1.13.5 Levée d'exception centralisée 100
LES CLASSES ET LES OBJETS
1 Présentation générale
1 Généralités
Les classes sont des représentations abstraites des objets du monde.
Une classe doit représenter les caractéristiques statiques et dynamiques
des objets.
Elle les encapsule.
Les caractéristiques statiques sont représentées au moyen d'attributs ou de
propriétés.
Les caractéristiques dynamiques sont représentées au moyen d'opérations ou
de méthodes.
La POO met en place les mécanismes d'héritage.
Pour explorer tous les concepts cf la POO (Programmation Orientée Objet) et
la méthode UML (Unified Modeling Language).
2 Représentation graphique
La représentation graphique (cf UML) est réalisée via un rectangle à 3
compartiments.
[pic]
3 Les objets
Un objet est une instanciation d'une classe.
4 Principales caractéristiques objet de PHP5
Class et new,
This, ::Self, ::parent,
Portées : public, protected, private,
Méthodes __construct et __destruct,
Héritage simple via extends,
Surchage - éventuellement avec polymorphisme - mais pas de polymorphisme de
même niveau,
Propriétés et méthodes static,
Classes abstraites et classes final,
Interfaces via Interface et implements,
Méthodes __set, __get pour affecter et récupérer des valeurs d'attributs
... et autres méthodes magiques.
NB : Pour les différences entre PHP4 et PHP5 cf annexe.
2 Les classes en PHP 5
1 Syntaxe de définition d'une classe
Par convention les noms des classes commencent par une majuscule et sont
camélisés.
La classe est enregistrée dans un fichier de même nom.
class NomDeClasse
{
}
2 Les propriétés et les méthodes
. Les propriétés
Les propriétés sont déclarées avec le mot réservé public ou private ou
protected.
QualificateurDePortée $nomDePropriété;
This est le pronom qui représente l'objet instancié.
La référence à une propriété ou à une méthode est réalisée avec l'opérateur
-> (Notation pointée ().
. Les méthodes
Les méthodes reprennent la syntaxe des fonctions avec un qualificateur de
portée.
. Remarques
Par convention les noms des attributs/propriétés et des opérations/méthodes
commencent par une minuscule et sont camélisés.
. Exemple de classe
[pic]
class Personne
{
// --- Propriétés
private $nom;
private $age;
// --- Méthodes
public function affecterNom($nom) { $this->nom = $nom; }
public function recupererNom() { return $this->nom; }
public function affecterAge($age) { $this->age = $age; }
public function recupererAge() { return $this->age; }
}
3 Instantiation d'un objet
L'instantiation d'un objet à partir d'une classe s'effectue avec le mot clé
new.
On affecte le nouvel objet à une variable.
$variable = new NomDeClasse();
. Exemple d'instantiation
$tintin = new Personne();
4 Exemple complet
[pic]
Par convention (Sans aucune obligation) une classe sera stockée dans un
fichier php. Le nom du fichier sera identique au nom de la classe.