École régionale du numérique - Développement d'une application Web 2018 – 2019
École régionale du numérique - Développement d'une application Web 2018 – 2019 M. Ducongé - Barrère 1/8 Les classes en PHP Cours n°2 École régionale du numérique - Développement d'une application Web 2018 – 2019 M. Ducongé - Barrère 2/8 Table des matières La programmation orientée objet .................................................................................................................... 3 Définition ..................................................................................................................................................... 3 Les avantages .............................................................................................................................................. 3 La logique des classes et des objets ............................................................................................................... 3 Construction d’une classe et utilisation ............................................................................................................ 4 Introduction ................................................................................................................................................. 4 Création d’une classe .................................................................................................................................... 4 Déclaration des constantes et propriétés de classe ........................................................................................ 5 Constantes .............................................................................................................................................. 5 Propriétés ................................................................................................................................................ 5 Portée des propriétés et méthodes................................................................................................................ 5 Public ...................................................................................................................................................... 5 Private ..................................................................................................................................................... 6 Protected ................................................................................................................................................ 6 Création d’un objet et utilisation ................................................................................................................... 6 La pseudo-variable $this ............................................................................................................................... 6 Les méthodes ............................................................................................................................................... 7 Constructeur............................................................................................................................................ 7 Accesseur et mutateurs ........................................................................................................................... 7 Commentaires .............................................................................................................................................. 8 Classe ...................................................................................................................................................... 8 Fonctions ................................................................................................................................................. 8 Variables ................................................................................................................................................. 8 École régionale du numérique - Développement d'une application Web 2018 – 2019 M. Ducongé - Barrère 3/8 LA PROGRAMMATION ORIENTEE OBJET Définition La programmation orientée objet est un modèle de langage de programmation qui s'articule autour d'objets et de données, plutôt que d'actions et de logique. Par le passé, un programme était une procédure logique qui récupérait des données en entrée, les traitait puis produisait des données en sortie. Les avantages L'orienté objet remplace le procédural dans les grands programmes car il présente de multiples avantages: - Facilité de compréhension (Permet de regrouper toutes informations sur un objet dans le code. Si mon programme gère des voitures, l'objet du même nom contiendra la marque de celle-ci, sa vitesse ainsi que sa couleur, etc...) - La modularité du code (On peut généralement récupérer 80 % du code d'un projet pour le réutiliser sur un projet similaire contrairement à la programmation procédurale. De plus les objets permettent d'éviter la création de code redondant, permettant donc un gain de temps et donc d'argent). La logique des classes et des objets En programmation orientée objet, un objet est un conteneur d'informations représentant un sujet manipulé dans le programme. La classe est un modèle à partir duquel les comportements (méthodes) et caractéristiques (attributs) sont définies. Ceux-ci sont généralement basés sur ceux qu'ils représentent : Un objet de classe voiture aura des variables représentant le modèle, la couleur, la vitesse ... et des méthodes pour récupérer ou modifier ces variables. École régionale du numérique - Développement d'une application Web 2018 – 2019 M. Ducongé - Barrère 4/8 CONSTRUCTION D’UNE CLASSE ET UTILISATION Introduction Avant de comprendre comment créer un objet, il faut au préalable savoir comment est composé une classe. Pour gagner en lisibilité et par convention, le mieux est de mettre une classe dans un fichier unique avec pour nom de fichier le nom de la classe. Pour pouvoir l’utiliser, il suffit de l’inclure dans le fichier désiré avec un « require() ». Création d’une classe Une classe commence toujours par le mot « class » suivi de son nom. Par convention, ce dernier doit avoir sa première lettre en majuscule. Une classe peut contenir ses propres constantes, variables (appelées "propriétés" ou "attributs"), et fonctions (appelées "méthodes"). Son contenu doit être entre une paire d'accolades contenant la définition des propriétés et des méthodes appartenant à la classe. Ci-dessous le contenu type d’une classe. class Personnage { public $force; private $localisation; private $experience ; private $degats ; public function __construct(){ $this->localisation = "Loooouuurrdes !!!"; } public function parler($phrase) { if($phrase != ‘’’’){ echo $phrase ; }else{ echo 'Je suis un personnage ! Ma localisation est : '.$this->localisation ; } } } École régionale du numérique - Développement d'une application Web 2018 – 2019 M. Ducongé - Barrère 5/8 Déclaration des constantes et propriétés de classe Constantes Il est possible de définir des valeurs constantes à l'intérieur d'une classe, qui ne seront pas modifiables. Les constantes diffèrent des variables normales du fait que l'on n'utilise pas le symbole $ pour les déclarer ou les utiliser. La visibilité par défaut des constantes de classe est public. const CONSTANTE = "Ma constante"; L’appel des constantes se fait avec le nom de la classe suivi des caractères :: et du nom de la constante tel que suivant : echo Personnage::CONSTANTE; // Affichera Ma constante Attention les constantes de classe sont allouées une fois par classe, et non pour chaque instance de classe. Propriétés Les propriétés sont des variables au sein d’une classe. Elle se déclarent comme une variable classique avec un dollar suivi de son nom et un point-virgule pour marquer la fin de l’instruction. Pour accéder à une variable de classe, il faut utiliser un objet ou la variable pseudo élément « $this », voir plus loin dans le cours. public $force ; Il est préférable de spécifier une visibilité pour chaque déclaration, par défaut, elle est publique, voir le point suivant pour plus d’informations. Portée des propriétés et méthodes Les variables et les fonctions ont une visibilitée. C’est à dire qu’elles peuvent être accessibles partout ou limitées à un contexte défini. Cette visibilité permet de sécuriser certaines données très simplement. Il s'agit des visibilités publiques, privées ou protégées qui sont respectivement définies dans la classe au moyen des mots-clés « public », « private » et « protected ». Public C'est l'accès par défaut de PHP si l'on ne précise aucune visibilité. Tous les attributs et méthodes qui sont déclarées sans l'un de ces trois mots-clés seront considérés automatiquement comme publiques. Le mot-clé « public » indique que les propriétés et méthodes d'une classe seront accessibles depuis n'importe où dans l’application ou bien dans les classes mères héritées ou classes filles dérivées (la notion d’héritage sera expliquée un peu plus tard). École régionale du numérique - Développement d'une application Web 2018 – 2019 M. Ducongé - Barrère 6/8 Private Le mot-clé « private » permet de déclarer des attributs et des méthodes qui ne seront visibles et accessibles directement que depuis l'intérieur de la classe ou elles ont été déclarées. C'est à dire qu'il devient impossible de lire ou d'écrire la valeur d'un attribut privé directement en faisant : « $perso->degats ; » Lorsqu’on est dans la classe ou a été créé la méthode ou la variable, on peut y accéder en utilisant la variable objet « $this ». Cette notion est décrite un peu plus loin dans le cours. Protected L'accès protégé « protected » est un intermédiaire entre l'accès publique et l'accès privé. Il permet d'utiliser dans la classe enfant les attributs, les méthodes publiques et protégées déclarées dans la classe parente. Cette relation interclasses s’appelle héritage. Création d’un objet et utilisation Lorsqu’on est à l’extérieur de la classe et qu’on veut accéder aux élément de la classe, il faut créer un objet. Pour ce faire, il faut utiliser le mot « new » suivi du nom de la classe et de parenthèses. La ligne ci-dessous permet de créer un objet de la classe « Personnage ». On dit alors que « $perso » est une instance de la classe « Personnage ». $perso = new Personnage(); Lors de la création d’un objet, la méthode magique « __construct() » est appelée. Elle sert majoritairement à initialiser les propriétés de l’objet à créer ou exécuter des instructions. Un objet peut servir à appeler une fonction ou atteindre un attribut (nous le verrons plus tard). Pour accéder au contenu de la classe, il faut utiliser l’opérateur ->. Ce dernier sert à accéder aux éléments de la classe. L’exemple ci-dessous appelle une fonction de la classe « Personnage. » $perso->parler(); Vous pouvez créer autant d’objets que nécessaire pour votre application. Chacun d’entre eux aura ses propres propriétés. Par exemple, la modification de l’attribut « localisation » sur un objet de la classe « Personnage », cela n’impactera pas les autres instances. La pseudo-variable $this La pseudo-variable « $this » est disponible lorsqu'une méthode est appelée depuis un contexte objet. « $this » est une référence à l'objet appelant (habituellement, l'objet auquel la méthode appartient, mais ce peut être un autre objet si la méthode est appelée de manière statique depuis le contexte d'un autre objet). École régionale du numérique - Développement d'une application Web 2018 – 2019 M. Ducongé - Barrère 7/8 Par exemple, lors de l’appel de la méthode « $perso->parler() ; », l’attribut « localisation » est déclaré en « private ». Pour y accéder, il faut utiliser la variable « $this » suivi du nom de la variable sans le dollar. L’affectation d’une variable de classe s’effectue toujours avec le caractère égal suivi de la donnée. « $this->localisation = ‘’Lourdes’’ ; » Les méthodes Les méthodes dans une classe ne changent pas trop d’une fonction classique. Elles se déclarent de la même manière sauf qu’il faut préciser leurs portées (public private, protected). Les valeurs de retour sont également facultatives. Constructeur Lors de la déclaration de l’objet avec « new », il est possible d’exécuter un certain nombre d’instructions. Cette fonction est dite méthode magique par PHP, car elles sont prédéfinies et réservé. function __construct() { echo "Cette méthode a été appelée uploads/Geographie/ php-2.pdf
Documents similaires










-
32
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 29, 2022
- Catégorie Geography / Geogra...
- Langue French
- Taille du fichier 0.2223MB