PHP avancé
- Concepts de base du PHP Orienté Objet
- Encapsulation (Visibilité)
- Héritages
- Constantes de classe, attributs et méthodes statiques
- Méthodes magiques
- Les classes et méthodes abstraites : définition et intérêt
- Gérer une DB avec PDO
- CRUD (Create, Read, Update, Delette)
- Les interfaces en PHP
- Les traits en PHP
- Classe anonyme en PHP
- Clonage d’objet en PHP
- Les sessions en PHP
- Les cookies en PHP
- Gestion des exceptions en PHP
- Les filtres en PHP
1- Concepts de base du PHP Orienté Objet
Qu’est-ce qu’un objet ?
Les objets pourraient être comparés à des variables dans lesquelles on pourra non seulement écrire ou lire des valeurs, mais également effectuer des actions.
Exemples de la vie quotidienne
Dans notre vie quotidienne, nous utilisons des objets tous les jours. Notre cafetière, notre voiture, notre téléviseur sont autant d’objets « quotidiens » qui pourraient se comparer à un objet PHP.
En effet, chacun de ces objets aura des caractéristiques qui lui sont propres, sa couleur, son énergie, sa taille, le nombre de places de la voiture. Chacune de ces caractéristiques vont définir notre objet.
Nous pourrons également effectuer des actions avec chacun de ces objets, démarrer, allumer, changer de chaine, accélérer…
Et le PHP dans tout ça ?
En PHP, les caractéristiques s’appelleront des propriétés et les actions s’appelleront des méthodes. Nos objets pourront posséder ces propriétés et ces méthodes en fonction de ce que nous souhaitons.
Conventions
Avant d’aller plus loin, voici quelques conventions importantes dans le développement orienté objet.
- Chaque objet aura son propre fichier
- Le nom de fichier sera le nom de l’objet
- Le nom de l’objet sera écrit en UpperCamelCas
Premier Classe
Une classe en PHP se définit par le mot clé « class« .
Nous allons donc créer la Classe « Compte » dans un fichier intitulé « Compte.php » (notez-le C majuscule). Nous placerons ce fichier dans un dossier « classes » qui contiendront tous nos fichiers de classes.
Le fichier « Compte.php » contiendra donc la déclaration de classe « Compte » comme ceci

Une fois la classe déclarée, à l’intérieur nous allons pouvoir déclarer les propriétés de l’objet. Notre compte pourra avoir un titulaire et un solde. Nous allons donc les déclarer comme ci-dessous (nous reviendrons sur le mot clé « public » dans la partie « Visibilité »).


Instancier l’objet
Après avoir déclaré la classe, nous pourrons l’appeler à plusieurs reprises dans des variables différentes. On appellera cette manipulation « Instancier l’objet » qui permet de créer plusieurs exemplaires de notre objet, chaque exemplaire étant appelé « instance« .

Modifier la valeur des propriétés
Lorsque nous avons instancié l’objet « Compte« , nous n’avons pas défini de valeurs pour les propriétés « titulaire » et « solde ».
Nous allons pouvoir les modifier comme ceci


Le constructeur
Comme nous l’avons vu précédemment, lorsque nous instancions notre classe, ses propriétés ne sont pas remplies.
Nous allons pouvoir utiliser une méthode (fonction) spécifique appelée « constructeur » qui va nous permettre de « construire » notre objet lorsque nous l’instancions.
Cette méthode sera exécutée automatiquement lors de l’instanciation de l’objet.

Vous remarquerez l’utilisation de « this » qui représente l’instance de classe que nous utilisons.
Pour instancier notre classe, nous devrons donc maintenant préciser un titulaire et un solde de cette façon

Ajouter des méthodes
Une fois notre objet créé, nous pouvons avoir besoin d’effectuer des actions sur celui-ci.
Dans le cas de notre « Compte« , nous devrions pouvoir afficherle solde, déposer et retirer de l’argent.
Pour afficher le solde du compte, nous allons créer une méthode que nous placerons directement sous le constructeur.
Notre méthode affichera le solde du compte sous la forme d’un « echo » et sera créée comme ceci

Pour afficher le solde de notre « compte1« , nous allons donc utiliser la méthode de la façon suivante


Pour pouvoir ajouter de l’argent à notre solde, nous allons créer une méthode « deposer«

Et l’utiliser comme ceci

Pour le retrait, nous allons créer une méthode « retirer » qui vérifiera le solde avant d’autoriser le retrait

Et l’utiliser comme ceci
