Cours programmation Objets en PHP, tutoriel & guide de travaux pratiques en pdf.
Motivation Terminologie Classe
Modèle d’objets composé de données (attributs, propriétés) et de fonctions (méthodes) Objet : une instance de la classe (création d’objets à partir du moule qui peut donc en avoir plusieurs) Chaque objet transporte avec lui ses données qui pourront être traitées par les fonctions (méthodes) de la classe de l’objet. L’intérêt de l PO est présent quand : – à une classe correspond plusieurs objets. – Une « classification » d’objets existe. – Un objet transporte un ensemble de données personnelles – Un objet a un ensemble d’actions réservées(fonctions, méthodes) Avant de faire de la PO, vérifiez que cela présente un intérêt pour le problème considéré, c’est à dire la présence naturelle de plusieurs objets pour chaque classe et/ou l’existence d’un héritage de classes ! Si le programme se résume à un seul objet déduit d’une classe unique (généré per l’instruction NEW) qui contient plusieurs méthodes qui semblent complexes, on peut s’interroger sur la pertinence du choix du langage Objet : est-ce de la PO ou du langage Objet qui est programmé de manière procédurale ?… Domaines potentiels : comptes bancaires, abonnés d’une bibliothèque, classification d’espèces animales en zoologie, gestion d’images, … Par rapport à l’AF, chaque classe correspond à une boîte. Chaque boîte contient des données (appelées ici propriétés) et des activités (appelées ici méthodes). Un objet peut être vu comme un exemplaire d’un mécanisme des actigrammes. L’arbre hiérarchique est remplacé par la notion d’héritage où on « hérite » de la classe de niveau supérieur : le parent de deux enfants représente la partie commune et pas une fonction plus générale. Le modèle entités/relations (renommé diagramme de classe en UML) représente les échanges entre les objets de classe différente.
Langages JavaScript et PHP
Le langage JavaScript utilise des objets dans un arbre complexe mais n’a pas la notion de classe (jusqu’à version 1.5 de Netscape). L’instruction NEW n’existe que pour les tableaux. Ce n’est donc pas réellement un langage Objet mais plutôt événementiel. Nouveau en PHP4, la programmation orientée Objets (plutôt Classes/Objets) s’améliore grossièrement en PHP5. Il faudra cependant s’attendre à des changements des instructions dans les nouvelles versions. Limites – L’héritage est unique et pas multiple en PHP4 et 5. – Constructeurs d’objets : nouveau en PHP5 – Destructeurs d’objets : à voir – Classes abstraites et interfaces : nouveau en PHP5. – variables PUBLIC, PRIVATE,… : tout est public en PHP4 ; nouveau en PHP5. AVERTISSEMENT : les informations disponibles dans les livres sur PHP5 ne sont pas cohérent à 100 % avec les tests avec EasyPhp (Ex : livre PHP5 de Eric Daspet et Cyril Pierre de Geyer) et il vaut mieux tester les instructions avant exploitation.