PHP 7° PARTIE : PROGRAMMATION OBJET

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

PHP5 its a kind of magic. Chargement automatique function __autoload( $nom_classe ) { require_once('obj/'.$nom_classe.'.class.php'); } si on exécute le.
1 Quelques précisions sur l'héritage. 2 Signification de super.f() appel à la méthode f() masquée super : désigne l'objet appelant comme s'il était de.
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV1 JAV – TD 5 Lhéritage en Java.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
PHP5 poo.
PHP5 its a kind of magic. Chargement automatique function __autoload( $nom_classe ) { require_once('obj/'.$nom_classe.'.class.php'); } si on exécute le.
Programmation Orientée Objet (POO)
Jérôme CUTRONA PHP objet Jérôme CUTRONA 01:08:01 Programmation Web
11:37:32 Programmation Web PHP5 objet "avancé" Jérôme CUTRONA
Leçon 3 : Héritage IUP 2 Génie Informatique
Le langage PHP 5.
Chapitre III Héritage (début)
COURS DE PROGRAMMATION ORIENTEE OBJET :
Leçon 6 : Structures de données dynamiques IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
C++ : classes Introduction aux Langages Orientés Objets
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Structures de données IFT-2000
Introduction à la programmation objet Langage Java
Introduction à la programmation II Veronica Diego Mercredi 13 avril 2005.
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
Introduction au paradigme orienté-objet (suite)
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Types de données abstrait et mécanismes d'encapsulation
Chapitre III Héritage. POO-L3 H. Fauconnier2 Chapitre III: Héritage A) Extensions généralités Affectation et transtypage B) Méthodes Surcharge et signature.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
INF1101 Algorithmes et structures de données
Héritage Licence Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier.
Structures de données IFT-2000
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 3 Polymorphisme I.
Travaux Pratiques Représentation des connaissances
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
PHP 3° PARTIE : GESTION DE FICHIERS ET DE REPERTOIRES
La notion de type revisitée en POO
ESA Ecole Supérieure des Affaires Ernaelsten Gérard - Frédéric FiléePage 285 Cours de Programmation Web : PHP Chapitre 5 : Orienté objet en PHP.
11/04/ L'héritage Cours 7 Cours 7.
Programmation objet La base.
7ième Classe (Mardi, 24 novembre) CSI2572. Devoir 3 ?
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
12/04/ Le polymorphisme Cours 8 Cours 8.
Introduction à la programmation objet en C++
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Réaliser par: Sadok Amel Cheboui hassiba
PHP objet Jérôme CUTRONA 10:13:27 Programmation Web
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Les surcharges d'opérateurs
IUT du Limousin L.U.P Michel Vergnaud Programmation Objet - Java.
Les classes Introduction aux Langages Orientés Objets
PHP5 objet "avancé" Jérôme CUTRONA 09:56:48 Programmation Web
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Introduction à la programmation objet avec java
Héritage Conception par Objet et programmation Java
Campus-Booster ID : Copyright © SUPINFO. All rights reserved La programmation objet, un fondement de la programmation évènementielle.
Introduction à la Programmation Orientée Objet
Langage de Programmation Orientée Objet : C++
Bases de données Singleton pour la connexion
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
Master 1 SIGLIS Jave Lecteur Stéphane Tallard Chapitre 5 – Correction TD.
Transcription de la présentation:

PHP 7° PARTIE : PROGRAMMATION OBJET Déclaration d’une classe Déclaration d’un objet Encapsulation Constructeur Destructeur Héritage Surcharge et surdéfinition L’opérateur :: Limites de PHP en POO Travaux pratiques © BTS IRIS 2003 [tv]

1 . Déclaration d’une classe En PHP, la définition, la spécification et la réalisation d’une classe sont déclarées dans le même bloc : class Motocyclette { //attributs var $couleur ; var $cylindree ; var $vitesseMaximale ;   //méthodes function getCouleur() return $this->couleur; } function setCouleur($couleur) $this->couleur = $couleur; //etc …

2 . Déclaration d’un objet En PHP, la déclaration d’un objet revient à instancier une classe avec new : Nom de la classe de l’instance Un objet //Déclaration d’une instance : $MonTacot = new Motocylette; //Utilisation : $MonTacot->setCouleur("rouge");

3 . Encapsulation Pour les parser Zend Engine 1.x (PHP 4.x), tous les membres sont publics : //possible mais déconseillé : $MonTacot->couleur = "vert"; Les versions Zend Engine 2.x introduisent la notion des attributs privés : class CNomClasse { var $a ; //attribut public private $b ; //attribut privé }

4 . Constructeur Il faut ici distinguer les différentes versions : PHP 3 : une fonction portant le même nom que la classe PHP 4.x et Zend Engine 1.x : une fonction membre portant le même nom que sa classe Zend Engine 2.x : une fonction membre spécifique __construct() class Motocyclette { //attribut var $_couleur ;   //Constructeur function Motocyclette($couleur= "") $this->_couleur = $couleur; }   //etc … //Déclaration d’une instance : $MonTacot1 = new Motocylette(); //ou : $MonTacot2 = new Motocylette("rouge");

5 . Destructeur Il n’y a pas de destructeurs en PHP 4.x et Zend Engine 1.x. Destruction : en PHP 4.x, on utilisera la fonction unset($MonTacot).   Solution PHP 4.x : étant donné que le destructeur est appelé lorsqu’un objet est détruit, on peut alors simuler un destructeur avec register_shutdown_function(string fct), qui permet d’enregistrer la fonction fct pour son exécution à la fin du script.   Zend Engine 2.x introduit la notion de destructeur avec la fonction membre spécifique __destruct() a Destruction : on utilisera delete($objet).

6 . Héritage En PHP, une classe peut être déclarée comme étant une sous-classe d’une autre classe en spécifiant le mot clé extends : class DeuxRoues { //attribut var $_couleur ;   //Constructeur function DeuxRoues($couleur= "") $this->_couleur = $couleur; }   //etc … class Bicyclette extends DeuxRoues function Bicyclette($couleur= "") //Appel du constructeur parent parent::DeuxRoues($couleur); //Déclaration d’une instance : $MonVelo = new Bicylette("bleue"); echo $MonVelo->getCouleur();

7 . Surcharge et surdéfinition Surcharge (overloading)   PHP ne permet pas la surcharge de fonction et donc on ne peut attribuer le même nom à plusieurs fonctions. Par contre la redéfinition est possible. Redéfinition (overriding) PHP permet la redéfinition, c’est-à-dire la possibilité de redéclarer les mêmes attributs et opérations d’une super classe au sein d’une sous classe. class DeuxRoues { //Attribut var $_couleur ;   //Méthode function getCouleur() return $this->_couleur; } class Bicyclette extends DeuxRoues { //redéfinition de l’attribut var $_couleur ;   //redéfinition de la méthode function getCouleur() echo "Nouvelle méthode !"; return $this->_couleur; } retourne cet attribut //Déclaration d’une instance : $MonVelo = new Bicylette; $MonVelo->getCouleur(); Appel de cette méthode

8 . L’opérateur :: Il est possible de faire référence aux méthodes d’une classe de base. Pour cela, on utilise l’opérateur :: en précisant soit le nom de la classe de base soit le mot clé parent : class MaClasse { //Attribut var $attribut ;   //Méthode function Methode() echo "Je suis une méthode !"; } //Exemple : MaClasse::Methode(); //Attention : //Étant donné qu’il n’y a pas de //déclaration d’un objet //les attributs

9 . Les limites de PHP en POO Mini FAQ : 1 . Peut-on utiliser include et require dans la définition d'une classe ? Non. 2 . PHP fait-il la distinction entre fonctions et méthodes ? Oui, PHP distingue bien les méthodes d'un objet des fonctions indépendantes. 3 . Est-on obligé de déclarer un constructeur ? Non. Si une classe n'a pas de constructeur, le constructeur de la classe de base est appelé s'il existe. 4 . Que ne peut-on pas encore faire avec les classes en PHP ? Tout dépend de la version utilisée : d'importants changements sont prévus dans les futures versions de PHP (visiter le site www.zend.com ou www.php.net). Actuellement, les limites pour PHP 4.x sur un moteur Zend Engine 1.x sont : Pas de méthodes, ni d'attributs privées : tout est public; Pas de destructeur; Pas d'appel automatique au constructeur de la classe père; Pas d'héritage multiple.

10 . Travaux pratiques Tester les exemples du cours. Reprendre l’application de gestion de revues du TP n°4 et l’écrire en POO. Pour rappel, l’application doit permettre les fonctions principales suivantes : ajouter des revues, modifier des revues existantes, supprimer des revues existantes et afficher les revues disponibles. On structurera son application en utilisant des fichiers séparés. Pour les fichiers contenant des classes, utiliser les noms xxx.class.php