La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Introduction à la programmation II Veronica Diego Mercredi 13 avril 2005.

Présentations similaires


Présentation au sujet: "Introduction à la programmation II Veronica Diego Mercredi 13 avril 2005."— Transcription de la présentation:

1 Introduction à la programmation II Veronica Diego Mercredi 13 avril 2005

2 Sujets qui seront abordés : Introduction à la programmation orientée objet Les classes en Php 4 et 5 Les objets dans Php 4 et 5 Utilisation de librairies de classe

3 Introduction à la programmation orientée objet Avant la version 4 de php, la programmation orientée objet nétait pas proposée dans ce langage. Les programmeurs devaient donc se débrouiller pour organiser des fonctions de la manière la plus propre possible en essayant de les faire communiquer entre elles et de leurs faire partager des données sans pour autant rendre le code incompréhensible. Par rapport à C++ ou Java, Php faisait figure de langage « brouillon » avec lequel il était très difficile de développer du code réutilisable et maintenable facilement. La programmation orientée objet est né de ce genre de constat, dabord en 1972 avec SmallTalk, mais surtout en 1983, lorsque Bjarn Stroustrup mit au point une extension orientée objet du langage C : le C++. Depuis, les mettre mots en matière de programmation sont réutilisabilité et facilité de maintenance. Le code doit être organisé de façon clair et logique de manière à atteindre ces objectifs. La programmation objet fournit un cadre idéal à ce genre de réalisation, car elle permet une meilleure conceptualisation, elle rend le principe de fonctionnement dun programme plus « humain » en permettant de sabstraire totalement du code pour satteler à la tâche principale : trouver la solution à un problème.

4 Les classes Php 4 et 5 Définition : Une classe est un ensemble de variables et de fonctions. Utilisation : Une classe démarre toujours par le mot class suivit du nom de la classe. Ensuite, nous écrivons entre accolade ({ }) les listes des variables membres et celles des méthodes (l'ordre n'a aucune importance), de la même façon que nous définirions des variables et des fonctions.

5 Les classes Exemple : <?php //php 5 class Animal { // les trois caractéristiques dun animal public $type; public $nom; public $nourriture; // laction que lanimal peut effectuer function emettreSon(){ print("Le $this->type pousse son cri ! "); } ?> Note : en Php 4, il faudrait mettre "var" à la place de "public"

6 Les objets dans php 4 et 5 Un objet regroupe toutes les informations et actions disponibles pour une entité donnée. Les informations, que nous appelons indifféremment « attributs », « champs », « propriétés » ou encore « membres », sont matérialisées par des variables, tandis que les actions, que nous appelons « méthodes », sont matérialisées par des fonctions.

7 Les objets dans php 4 et 5 Pour comprendre la notion dobjet, prenons un exemple. Imaginons que nous souhaitons simuler un zoo et, plus précisément, le moment où le gardien vient nourrir chaque animal. Nous voulons, en outre, que chaque animal lance son cri lorsque le gardien le nourrit (le lion va rugir, le mouton bêler, etc.), nous voulons également que le gardien donne le bon type de nourriture à chaque animal.

8 Les objets dans php 4 et 5 Dans notre exemple, nous sommes en présence de deux objets : un gardien et un animal. Chacun des deux sera défini par ses caractéristiques propres et par les actions quil peut effectuer. Les caractéristiques du gardien seront par exemple son nom et son prénom, et celles de lanimal duquel il sapproche seront son genre (koala, lion…), son nom et la nourriture quil consomme.

9 Les objets dans php 4 et 5 Voici en Php 5 à quoi ressemblerait la classe correspondant à notre objet animal : class Animal { // les trois caractéristiques dun animal public $type; public $nom; public $nourriture; // laction que lanimal peut effectuer function emettreSon(){ print("Le $this->type pousse son cri ! "); } Note : en Php 4, il faut remplacer "public" par "var" Voir fichier zoo_1.php

10 Les objets dans php 4 et 5 Visibilité des variables (Php 5): En effet, dans un objet, il est possible de spécifier qui pourra accéder à quelles variables. Il existe trois niveaux de visibilité, symbolisés par trois mots clés : public : indique que la variable est publique. Dans ce cas, la variable est directement accessible de l'extérieur de la classe (zoo_2a.php) private : indique que la variable est privée. Dans ce cas, la variable n'est accessible qu'à l'intérieur de la classe. Si vous souhaitez y accéder de l'extérieur, il faudra écrire une méthode qui la retourne. (zoo_2b.php) protected : cette visibilité se situe entre privée et publique. Dans ce cas, la variable ne sera pas accessible de l'extérieur de la classe, sauf pour les classes filles qui hériteront de ce champ comme champ privé (nous reviendrons plus tard sur la notion de classe fille, avec l'héritage). (zoo_2c.php)

11 Les objets dans php 4 et 5 Naissance des objets: Pour utiliser une classe, il faut en créer une instance grâce à l'opérateur new (il s'agit de "l'instanciation" d'une classe) : <?php $animal = new Animal(); ?> Un problème se pose : nous souhaitons indiquer quels sont le nom et la race de l'animal et quelle nourriture il mange. Il est intéressant de pouvoir passer ces valeurs en paramètre lors de la création de l'objet, autrement dit de pouvoir écrire : <?php $animal = new Animal("lion", "Tony", "viande"); ?>

12 Les objets dans php 4 et 5 Constructeurs : C'est justement ce que permettent les constructeurs. Un constructeur est une méthode spéciale qui est appelée lors de l'instanciation de la classe avec new. Ici nous touchons à une différence entre Php 4 et Php 5. En effet, la fonction constructeur en Php 4 est définie par une fonction ayant le même nom que la classe, tandis que en Php 5 le constructeur est affublé d'un nom spécial : __construct. Nous allons donc pouvoir écrire cette méthode de façon à ce qu'elle assigne les valeurs passées en paramètres aux variables membres :

13 Les objets dans php 4 et 5 //php 4 class Animal { // les trois caractéristiques dun animal var $type; var $nom; var $nourriture; //le constructeur de notre classe function Animal($type, $nom, $nourriture) { $this->type = $type; $this->nom = $nom; $this->nourriture = $nourriture; }

14 Les objets dans php 4 et 5 // laction que lanimal peut effectuer function emettreSon(){ print("Le $this->type pousse son cri ! "); } function getType() { return $this->type; } function getNom() { return $this->nom; } function getNourriture() { return $this->nourriture; }

15 Les objets dans php 4 et 5 //php5 class Gardien { // les deux caractéristiques dun gardien public $nom; public $prenom; //le constructeur prends deux variables en paramètres function __construct($nom,$prenom){ $this->nom = $nom; $this->prenom = $prenom; } // laction que le gardien peut effectuer function nourrir($animal){ print("$this->nom $this->prenom donne de la $animal->nourriture". " au $animal- >type. "); $animal->emettreSon(); } Voir fichier zoo_3.php

16 Les objets dans php 4 et 5 Destructeur: Lorsque les objets ne sont plus utilisés, ils sont détruits. Php 5 s'occupe automatiquement de compter le nombre de références sur les objets afin de savoir quand ils ne sont plus utilisés et peuvent donc être effacés sans danger. Lors de cette destruction, il peut être nécessaire de réaliser des opérations pour que la destruction de l'objet soit correctement effectuée. Pour cela, une classe peut posséder un destructeur, qui comme le constructeur est une méthode portant un nom spécial : __destruct. A la différence du constructeur, le destructeur ne peut accepter de paramètres puisqu'il est appelé automatiquement par Php. Ajoutons un destructeur à notre classe Animal afin d'afficher un message lors de sa destruction : //le destructeur de notre classe function __destruct() { print("Un objet de type Animal ($this->type) a été détruit. "); } Voir fichier zoo_4.php

17 Les objets dans php 4 et 5 Lhéritage : L'héritage permet de faire dériver une classe d'une autre afin qu'elle hérite de tous ses champs de type public et protected ainsi que de toutes ses méthodes. Nous pouvons ensuite en ajouter et aussi redéfinir ces méthodes afin de les spécialiser. Ici, nous allons garder notre classe Animal et en faire hériter une classe Lion et une classe Koala. class Lion extends Animal { function __construct($nom) { $this->type = "lion"; $this->nourriture = "viande"; parent::__construct($nom); } function emettreSon() { print("Grooooooooar! "); }

18 Les objets dans php 4 et 5 Note : lopérateur « :: » permet daccéder aux fonctions et variables de la classe parente, « parent » aurait pu être remplacé par le nom de la classe parente (Animal). Pour accéder à une variable de classe qui nest pas encore instanciée, il faut utiliser lopérateur « :: » avec une variable « static » (ex: public static $type) Voir fichier zoo_5.php

19 Utilisation de librairies de classes Définition : L'appellation de librairie vient d'un import abusif du mot "library" en anglais. C'est un synonyme de bibliothèque. Une librairie est un ensemble de méthodes, d'attributs et de classes réunis dans un fichier directement utilisable à l'intérieur d'une application. Une librairie à un Application Programmers Interface (API), cest-à- dire une liste de fonctions (ou procédures ou méthodes) et de variables (ou classes) documentées et que vous pouvez utilisez.

20 Utilisation de librairies de classes Utilisation : Pour utiliser une librairie, il suffit dinstaller sur son serveur la librairie en question quelque part (sur le serveur), puis dans votre page Php, il faut faire un « include » avec le chemin jusquà la librairie. Exemple : include('/path/to/set/here/adobd.inc.php'); Ensuite, il faut se référer à l'API pour connaître les fonctions utilisable.

21 Tableau récapitulatif Php 4Php 5 ConstructeurFonction ayant le même nom que la classeEx : Class Etudiant {function Etudiant() Fonction __construct() Ex : Class Etudiant { function __construc() Notion « destructeur » dobjetsN/AFonction __destruct() Ex :function __destruct() Notion de « clonage »N/AFonction __clone() Ex :function __clone() Traitement des erreursVia des fonctions spécifiques Ex :function division_par_zero () Possibilité dutiliser les notions « try {} » et « catch {}» Niveaux de visibilités des variables$GLOBALPublic : variable accessible de l'extérieur de la classe Private : variable accessible uniquement à l'intérieur de la classe Protected : variable non accessible depuis l'extérieur de la classe sauf pour les classes filles. Etc.

22 Références Classes et librairies PHP : Borde, N., Marhin, A. & Thevenet, M. (2004). Php 5. Micro Applications : Paris. Choi, W., Kent, A., Lea, C., Prasad, G. et Ullman, C. (2000). Maîtrisez Php 4. Wrox : Paris. http://tecfa.unige.ch/guides/php/php5_fr/language.oop.html http://tecfa.unige.ch/guides/php/php5_fr/language.oop5.html http://tecfa.unige.ch/guides/tie/pdf/files/php-libs.pdf

23 TP Prenez le fichier "tp.php" et ajoutez du code permettant l'utilisation des fonctions définies dans les classes. Exemple :


Télécharger ppt "Introduction à la programmation II Veronica Diego Mercredi 13 avril 2005."

Présentations similaires


Annonces Google