PHP5 its a kind of magic. Chargement automatique function __autoload( $nom_classe ) { require_once('obj/'.$nom_classe.'.class.php'); } si on exécute le.

Slides:



Advertisements
Présentations similaires
C++ 5ème cours Patrick Reuter maître de conférences
Advertisements

Séparation des préoccupations (c) 2004, Audrey Occello, LF8 MOC Seconde partie Un exemple de programmation orientée Aspect avec AspectJ.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
PHP5 poo.
Symfony Formulaires.
PHP5 its a kind of magic. Chargement automatique function __autoload( $nom_classe ) { require_once('obj/'.$nom_classe.'.class.php'); } si on exécute le.
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
Bases de données Objet singleton pour la connexion
PHP Interface base de données
Bases de données Objet singleton pour la connexion
بسم الله الرحمن الرحيم. Institut Supérieure des Etudes Technologiques de Kébili.
Connexion base de données
Chapitre IV Object, interfaces, classes imbriquées.
Le langage PHP 5.
BlueJ_XI 1 Java, les objets : tout de suite ! Gestion des erreurs : les exceptions Notes de cours associées au chapitre 11 tutorial BlueJ
Javascript les spécificités du langage - Partie 3 -
Faculté I&C, Claude Petitpierre, André Maurer 1 Java.
Faculté I&C, Claude Petitpierre, André Maurer What is this ? (Quest ce que this ?)
Langage Oriente Objet Cours 4.
Cours du 19 octobre. POO-L3 H. Fauconnier2 E) Constructeurs et héritage Le constructeurs ne sont pas des méthodes comme les autres: le redéfinition na.
Objets Javascript Mécanismes internes Le concept et la construction dobjets
Principes de programmation (suite)
Chapitre VII Généricité. POO-L3 H. Fauconnier2 Chapitre VII 1. Principes généraux 2. Types génériques imbriqués 3. Méthodes génériques 4. Types paramètres.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Introduction à la programmation II Veronica Diego Mercredi 13 avril 2005.
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
POO-L3 H. Fauconnier1 Supplément gratuit…. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double.
Design Pattern Memento. Principe : Enregistrer les changements d'états d'un objet Objectif : Pouvoir restituer les états précédents d'un objet.
Faculté I&C, Claude Petitpierre, André Maurer Le parallélisme Introduction.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Chapitre 9 Les sous-programmes.
Cours 11 Threads. Chapitre X threads threadPOO-L3 H. Fauconnier3 Threads threads: plusieurs activités qui coexistent et partagent des données exemples:
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI2520 Le langage Scheme (2) Un langage de programmation fonctionnelle.
Fabienne Boyer Laboratoire LIG (INRIA-UJF-INPG) Projet SARDES, INRIA Rhône-Alpes APACHE/VELOCITY.
Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.
Objectifs À la fin de ce cours, vous serez capables de :
Javascript les spécificités du langage - Partie 5 -
JavaScript Nécessaire Web.
Packages et Types De la Spécification Formelle A l'implémentation Ada.
Cours n°3 rappels. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double a = 5.6d ; double b =
La notion de type revisitée en POO
Propriétés. Propriétés ► Les propriétés peuvent être visibles dans les environnements de scripts ► Les propriétés peuvent être accédées par programmation.
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.
Variables et accès en Java. Déclaration des variables final transient static private Printer hp; transient => ne doivent pas être sérialisées volatile.
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Tutorat en bio-informatique
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
PHP 7° PARTIE : PROGRAMMATION OBJET
Constructeurs H Batatia. Variable statique Une variable statique est partagée par tous les objets d’une classe.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 3 – Classes et objets en Java Master 1 SIGLIS1 Java Lecteur - Chapitre 3 Classes et objets en Java.
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.
Schéma de conception Factory Method Exemple Sylvain Giroux.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
PHP5 objet "avancé" Jérôme CUTRONA 09:56:48 Programmation Web
Pthread Ordonnancement. #define _MULTI_THREADED #include #ifndef _CHECK_H #define _CHECK_H /* headers used by a majority of the example program */ #include.
Protocole HTTP, cookies, sessions, authentification
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
Bases de données Singleton pour la connexion
Nicolas Ribot Introduction aux triggers Nicolas Ribot - Licence GNU FDL - Version 1.1.
Exception Handling "Unfortunately, it's almost accepted practice to ignore error conditions, as if we're in a state of denial about errors." Bruce Eckel.
BlueJ_III 1 Java, les objets : tout de suite ! Interaction entre objets Notes de cours associées au chapitre 3 tutorial BlueJ
LES CLASSES ET LES OBJETS
Jérôme CUTRONA PHP5 objet "avancé" Jérôme CUTRONA 03:07:13 Programmation Web
Jérôme CUTRONA PHP objet Jérôme CUTRONA 08:30:34 Programmation Web
Bases de données Singleton pour la connexion
Transcription de la présentation:

PHP5 its a kind of magic

Chargement automatique function __autoload( $nom_classe ) { require_once('obj/'.$nom_classe.'.class.php'); } si on exécute le code $v = new voiture(); –le fichier obj/voiture.class.php sera automatiquement chargé

Constructeur / destructeur class voiture { public $marque; function __construct($marque) { $this->marque = $marque; } } $MaVoiture = new voiture('ferrari'); echo $MaVoiture->marque; // affiche ferrari De manière équivalente __destruct() regroupe toutes les actions à exécuter lors de la destruction dun objet

__call appelée automatiquement si l' on tente d'utiliser une méthode inexistante ne permet pas de gérer les appels statiques vers des méthodes inexistantes class MaClasse { function __call($name, $arguments) { echo 'Vous tentez d appeler la méthode.$name; } } $O = new MaClasse; echo $O -> coucou(); // affichera : Vous tentez d appeler la méthode coucou

__callStatic appelée automatiquement si l' on tente d'utiliser une méthode statique inexistante (depuis php5.3) class MaClasse { function __callStatic($name, $arguments) { echo 'Vous tentez d appeler la méthode.$name; } } MaClasse::coucou(); // affichera : Vous tentez d appeler la méthode coucou

__get appelé automatiquement si l'on tente d' utiliser un attribut inexistant class MaClasse { function __get($name) { echo 'Vous tentez d\'appeler l\attribut ', $name; } $O = new MaClasse; echo $O -> coucou; // affichera : Vous tentez d'appeler lattribut coucou

__set appelé automatiquement si l'on tente d'assigner une valeur à un attribut inexistant class MaClasse { function __set($name, $value) { echo 'Vous tentez d\'assigner ', $value, ' dans ', $name; } $O = new MaClasse; $O -> coucou = 'plouf'; // affichera : Vous tentez d assigner plouf dans coucou

__toString détermine comment la classe doit réagir lorsqu'elle est convertie en chaîne de caractères class MaClasse { function __toString() { return cet objet est un objet MaClasse; } $O = new MaClasse; echo $O; // affichera : cet objet est un objet MaClasse

__isset appelé pour déterminer si un attribut est défini class magicmethod { function __isset($variablename) { echo "Variable '".$variablename."' not Set"; } $a = new magicmethod(); isset($a->name); //affichera : Variable name not Set

__unset appelé pour effacer un attribut class magicmethod { function __unset($variablename) { echo "Variable '".$variablename."' not Set and Cannot be UnSet"; } $a = new magicmethod(); unset($a->name); //affichera: Variable name not Set and Cannot be UnSet

__sleep appelé lors de la sérialisation dun objet class magicmethod { private $setName; function __sleep() { echo "Performing Operation Before Serializing Data "; return array(setName); } $a = new magicmethod(); $a->setName = "Hello World!!!"; $serializedata = serialize($a); //affichera: Performing Operation Before Serializing Data

__wakeup appelé lors de la déssérialisation dun objet class magicmethod { private $setName; function __wakeup() { echo "Performing Operation Before Unserializing Data "; echo $this->setName; } $a = new magicmethod(); $a->setName = "Hello World!!!"; $serializedata = serialize($a); $serializedata1 = unserialize($serializedata); //affichera: Performing Operation Before Unserializing Data //Hello World !!

__clone appelé lors du clonage dun objet class Animal { public $legs; public $name; function __clone() { echo "Object Cloning in Progress"; } $tiger = new Animal(); $tiger->name = "Tiger"; $tiger->legs = 4; $kangaroo = clone $tiger; $kangaroo->name = "Kangaroo"; $kangaroo->legs = 2; //affichera: Object Cloning in Progress

class Singleton { function &getInstance() { static $instance; if(!$instance) { $instance = newSingleton(); } return $instance; } $obj = & singleton::getInstance(); Singleton en PHP 4 La classe est toujours instanciable

Singleton en PHP 5 class Singleton { static private $instance; private function __construct(){} public static function getInstance() { if (null === self::$instance)) { self::$instance = new self(); } return self::$instance; } final public function __clone() { trigger_error('Le clônage n\'est pas autorisé.', E_USER_ERROR); } } $obj = Singleton::getInstance(); Ne pas oublier la méthode __clone()

Singleton en PHP 5.3 part I abstract class Singleton { private static $instances = array(); final private function __construct() { if(isset(self::$instances[get_called_class()])) { Throw new Exception('instance of '.get_called_class().' already exists'); } static::initialize(); } Protected function intialize(){}

Singleton en PHP 5.3 part II final publicstatic function getInstance() { $class = get_called_class(); if(!isset(self::$instances[$class])) { self::$instances[$class] = new static(); } return self::$instances[$class]; } final private function __clone(){} }