0% ont trouvé ce document utile (0 vote)
3 vues44 pages

Poo PHP

Ce document présente les bases de la programmation orientée objet en PHP, y compris la syntaxe, les variables, les types de données, les structures de contrôle, et les fonctions. Il décrit également les concepts fondamentaux de la POO tels que l'encapsulation, l'héritage, l'abstraction et le polymorphisme, ainsi que la définition et l'utilisation des classes et objets. Enfin, il aborde les constructeurs et les méthodes associées à la création d'objets.

Transféré par

Rayan Afofou
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues44 pages

Poo PHP

Ce document présente les bases de la programmation orientée objet en PHP, y compris la syntaxe, les variables, les types de données, les structures de contrôle, et les fonctions. Il décrit également les concepts fondamentaux de la POO tels que l'encapsulation, l'héritage, l'abstraction et le polymorphisme, ainsi que la définition et l'utilisation des classes et objets. Enfin, il aborde les constructeurs et les méthodes associées à la création d'objets.

Transféré par

Rayan Afofou
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

PROGRAMMATION

ORIENTE OBJETS PHP

1
2
1. PHP Syntaxe (Syntaxe de Base)
· Balises PHP : Le code PHP doit toujours être encadré par les balises de début et de
fin, généralement : <?php et ?>.
· Sensibilité à la casse : PHP est sensible à la casse pour les variables ($maVar est
différent de $mavar), mais insensible à la casse pour les mots-clés (echo, if, while,
function, etc.).
· Séparateur d'instructions : Chaque instruction PHP se termine par un point-vir-
gule (;).

2. PHP Comments (Commentaires)


Les commentaires sont des parties du code ignorées par l'interpréteur, utilisées pour docu-
menter ou désactiver temporairement du code.
· Commentaire sur une seule ligne :
· // Ceci est un commentaire
· # Ceci est un autre commentaire (style Shell)
· Commentaire sur plusieurs lignes :
· /* Ceci est un
· commentaire sur
· plusieurs lignes */

3. PHP Variables (Variables)


· Déclaration : Une variable en PHP commence toujours par le signe dollar ($), suivi
du nom de la variable. Exemples : $nom, $age, $prix_unitaire.
· Règles de nommage :
· Doit commencer par $ suivi d'une lettre ou d'un _.
· Ne peut contenir que des caractères alphanumériques et des _.
· Sensible à la casse (rappelez-vous : $maVar est différent de $mavar).
· Typage Dynamique : PHP est faiblement typé, le type d'une variable est déterminé
par la valeur qu'elle contient au moment de l'affectation.

4. PHP Echo / Print (Affichage)


Ce sont les deux instructions principales pour afficher du contenu à l'utilisateur (générale-
ment dans la page HTML).
· echo : Peut afficher une ou plusieurs chaînes de caractères. Souvent plus rapide et
plus couramment utilisé. C'est une construction de langage.

3
· print : Ne peut afficher qu'une seule chaîne de caractères et retourne toujours la va-
leur 1. C'est aussi une construction de langage.

5. PHP Data Types (Types de Données)


PHP supporte plusieurs types de données scalaires et composés.

Type Description Exemple


String (Chaîne de caractères) Séquence de caractères "Bonjour", 'PHP'

Integer (Entier) Nombres entiers (positifs ou négatifs) 42, -10

Float (Décimal / Réel) Nombres à virgule flottante 3.14, 1.2e3

Boolean (Booléen) Valeurs de vérité : true ou false true, false

Array (Tableau) Collection de valeurs array('pomme', 'poire'), [1, 2, 3]

Object (Objet) Instance d'une classe new DateTime()

NULL Une variable sans valeur $x = null;

Référence à une ressource externe (ex:


Resource (Moins courant)
connexion DB)

6. PHP Strings (Chaînes de Caractères)


· Définition : Encadrées par des guillemets doubles (") ou simples (').
· Différence : Les guillemets doubles permettent l'interpolation des variables (la va-
riable est remplacée par sa valeur), tandis que les guillemets simples n'interpolent
pas.

4
· Opérations : La concaténation se fait avec le point (.).

7. PHP Numbers (Nombres)


· Integer : Utilisé pour les nombres entiers.
· Float : Utilisé pour les nombres décimaux (virgule flottante).
· Fonctions utiles : is_int(), is_float(), is_numeric(), etc.

5
8. PHP Casting (Transtypage)
Le transtypage permet de convertir explicitement une variable d'un type à un autre.
· Syntaxe : On place le type souhaité entre parenthèses devant la variable.

· Types de cast courants : (int), (float), (string), (bool), (array).

9. PHP Math (Mathématiques)


PHP propose de nombreuses fonctions mathématiques intégrées.
· Opérations de base : + (addition), - (soustraction), * (multiplication), / (division), %
(modulo - reste de la division).
· Fonctions courantes :
· abs() : Valeur absolue.
· round() : Arrondi.
· rand() : Générer un nombre aléatoire.
· max(), min() : Valeur maximale/minimale.
· sqrt() : Racine carrée.

10. PHP Constants (Constantes)


· Définition : Une constante est un identifiant pour une valeur simple qui ne peut pas
être modifiée au cours de l'exécution du script.
· Déclaration : On utilise la fonction define(). Par convention, les noms de constantes
sont en majuscules.

6
· Note : Les constantes n'utilisent pas le signe dollar ($).

11. PHP Magic Constants (Constantes Magiques)


Ce sont des constantes prédéfinies par PHP qui changent selon l'endroit où elles sont utili-
sées. Elles commencent et se terminent par deux traits de soulignement (__).

Constante Description
__LINE__ Numéro de la ligne actuelle dans le fichier.

__FILE__ Chemin complet et nom du fichier.

__DIR__ Dossier du fichier.

__FUNC-
Nom de la fonction actuelle.
TION__

__CLASS__ Nom de la classe actuelle.

__METHOD__ Nom de la méthode actuelle de la classe.

12. PHP Operators (Opérateurs)


Les opérateurs permettent d'effectuer des opérations sur des variables et des valeurs.
· Opérateurs Arithmétiques : +, -, *, /, %, ** (exponentiation).
· Opérateurs d'Affectation : = (affectation simple), +=, -=, .= (affectation avec opéra-
tion).
· Opérateurs de Comparaison : == (égalité), === (identité - valeur ET type), !=, <>,
<, >, <=, >=.
· Opérateurs Logiques : && ou and (ET), || ou or (OU), ! (NON), xor (OU exclusif).

7
· Opérateurs d'Incrémentation/Décrémentation : ++$var (pré-incrémentation),
$var++ (post-incrémentation), --$var, $var--.

13. PHP If...Else...Elseif (Conditions)


Les structures conditionnelles permettent d'exécuter un bloc de code si une condition est
vraie.
· if : Exécute un bloc de code si la condition est vraie.
· else : Exécute un bloc de code si la condition if (et toutes les elseif) est fausse.
· elseif : Permet de tester une condition supplémentaire si la première if est fausse.

14. PHP Switch (Sélection Multiple)


La structure switch est utilisée pour effectuer différentes actions en fonction de différentes
conditions sur la même expression. C'est une alternative souvent plus lisible aux longues
chaînes de elseif.

8
15. PHP Loops (Boucles)
Les boucles permettent d'exécuter un bloc de code de manière répétée.
· while : Exécute le bloc de code tant que la condition est vraie.

· do...while : Exécute le bloc de code au moins une fois, puis répète tant que la
condition est vraie.

9
· for : Utilisée lorsque le nombre d'itérations est connu.

· foreach : Utilisée pour itérer facilement sur les éléments d'un tableau (voir section
17).

16. PHP Functions (Fonctions)


Une fonction est un bloc d'instructions qui peut être appelé de manière répétée.
· Déclaration : Utilisation du mot-clé function.
· Paramètres : Valeurs passées à la fonction.
· Valeur de retour : Utilisation du mot-clé return.

16. PHP Procédures (Fonctions sans Retour)


En programmation, une procédure est un bloc de code conçu pour effectuer une tâche spé-
cifique sans nécessairement retourner une valeur. En PHP, on utilise la même syntaxe que
pour une fonction, mais on omet l'instruction return ou on ne retourne rien d'explicite.

16.1. Définition et Utilisation


L'objectif principal d'une procédure est de réaliser une action, comme afficher un message,
enregistrer un journal, ou modifier une variable passée par référence.

10
16.2. Fonctions Prédéfinies (Procédures Internes)
PHP est livré avec des centaines de fonctions prédéfinies qui agissent souvent comme des
procédures pour exécuter des tâches système ou d'affichage. En voici quelques exemples
fondamentaux :

Procédure In-
Description Exemple
terne
Termine l'exécution du script. Peut afficher un
die() ou exit() die("Erreur critique.");
message avant de s'arrêter.

Envoie un en-tête HTTP brut au client (navi- header("Location: nou-


header()
gateur). Essentiel pour les redirections. velle_page.php");

Démarre une nouvelle session ou reprend


session_start() session_start();
une session existante.

Définit un cookie à envoyer avec les en-têtes setcookie("utilisateur", "to-


setcookie()
HTTP. to", time() + 3600);

16.3. Passage par Référence (Effet de Bord)


Pour qu'une procédure (fonction sans return) puisse modifier une variable définie à l'exté-
rieur de son propre corps (ce qu'on appelle un effet de bord), vous devez passer la va-
riable par référence en utilisant l'esperluette (&) devant le paramètre.
· Passage par Valeur (par défaut) : La fonction travaille sur une copie de la variable.
L'originale n'est pas modifiée.
· Passage par Référence : La fonction travaille directement sur la variable originale.

11
17. PHP Arrays (Tableaux)
Un tableau stocke plusieurs valeurs dans une seule variable.
· Déclaration (syntaxe courte) : $tableau = ['valeur1', 'valeur2', ...];
· Types de tableaux :
· Tableaux Indexés : Accès aux éléments par leur index numérique (commen-
çant par 0).

· T

ableaux Associatifs : Accès aux éléments par une clé nommée (string).

· Tableaux Multidimensionnels : Tableaux contenant d'autres tableaux (ma-


trices).
· Boucle foreach : Le moyen le plus courant d'itérer sur un tableau.

12
PHP POO (Programmation Orientée Objet)

1. Qu'est-ce que la POO


À partir de PHP5, vous pouvez également écrire du code PHP dans un style orienté
objet.
La programmation orientée objet est plus rapide et plus facile à exécuter.

13
La Programmation Orientée Objet (POO) est un paradigme de programmation basé sur la
notion d'objets, qui peuvent contenir des données (appelées propriétés ou attributs) et du
code (appelé méthodes ou fonctions).
Les quatre piliers principaux de la POO sont :
1. Encapsulation : Le regroupement des données et des méthodes dans une seule
unité (la classe) et la protection des données internes contre les accès non autorisés.
2. Héritage : La capacité pour une classe d'hériter des propriétés et des méthodes
d'une autre classe.
3. Abstraction : La simplification de systèmes complexes en masquant les détails d'im-
plémentation et en ne montrant que les fonctionnalités pertinentes à l'utilisateur.
4. Polymorphisme : La capacité pour différentes classes d'être traitées par la même
interface, ou pour une même méthode de se comporter différemment dans des
classes différentes.

La programmation orientée objet présente plusieurs avantages par rapport à la pro-


grammation procédurale :
● La programmation orientée objet est plus rapide et plus facile à exécuter.
● La POO offre une structure claire pour les programmes.
● L'OOP aide à garder le code PHP DRY "Don't Repeat Yourself", et rend le
code plus facile à maintenir, modifier et déboguer.
● L'OOP permet de créer des applications entièrement réutilisables avec moins
de code et un temps de développement plus court.

PHP - Que sont les Classes et les Objets ?


Les classes et les objets sont les deux principaux aspects de la programmation
orientée objet. Regardez l'illustration suivante pour voir la différence entre une
classe et des objets :classe
Regardez l'illustration suivante pour voir la différence entre la classe et les objets :

classe

Fruit

objets

14
Pomme

Banane

Mangue

Un autre exemple :
classe

Voiture

Objets

Volvo

Audi

Toyota

Donc, une classe est un modèle pour les objets, et un objet est une instance d'une
Lorsque les objets individuels sont créés, ils héritent de toutes les propriétés et com-
portements de la classe, mais chaque objet aura des valeurs différentes pour les
propriété[Link] from the class, but each object will have different values for the
properties.
Consultez les prochains chapitres pour en savoir plus sur la POO.

2. PHP Classes/Objects (Classes et Objets)


· Classe : C'est le plan de construction (ou le modèle) pour créer des objets. Une
classe définit la structure des données (propriétés) et le comportement (méthodes)
que tous les objets de ce type auront.
· Objet : C'est une instance concrète de la classe. C'est l'entité réelle créée en mé-
moire à partir du plan de la [Link] d’autre terme,un objet est une instance de la
classe.
Pour résumer Une classe est un modèle pour les objets, et un objet est une instance
de la classe.

Supposons que nous ayons une classe nommée Voiture. Une Voiture peut avoir des
propriétés comme le nom, la couleur, le poids, etc. Nous pouvons définir des va-
riables comme $nom, $couleur et $poids pour contenir les valeurs de ces propriétés.

15
Lorsque les objets individuels (toyota, jetour, etc.) sont créés, ils héritent de toutes
les propriétés et comportements de la classe, mais chaque objet aura des valeurs
différentes pour les propriétés.

Définir une classe


Une classe est définie en utilisant le mot-clé class, suivi du nom de la classe et
d'une paire d'accolades ({}). Toutes ses propriétés et méthodes vont à l'intérieur des
accolades :Ci-dessous, nous déclarons une classe nommée Voiture composée de
la propriété ( $color) et de la methode demarer() pour définir et obtenir la propriété
$name :

Remarque : Dans une classe, les variables sont appelées propriétés et les fonctions
sont appelées méthodes !

Définir des Objets


Les classes ne sont rien sans les objets ! Nous pouvons créer plusieurs objets à par-
tir d'une classe. Chaque objet possède toutes les propriétés et méthodes définies
dans la classe, mais elles auront des valeurs de propriété différentes.
Les objets d'une classe sont créés en utilisant le mot-clé new.
Dans l'exemple ci-dessous, $apple et $banana sont des instances de la classe
Fruit :

16
Le mot-clé $this
Le mot-clé $this fait référence à l'objet courant et n'est disponible qu'à l'intérieur des
méthodes.
Regardez l'exemple suivant :

Alors, où pouvons-nous changer la valeur de la propriété $name ?


Il y a deux façons :

1. À l'intérieur de la classe (en ajoutant une méthode set_name() et en utilisant $this)


2. En dehors de la classe (en modifiant directement la valeur de la propriété) :

17
2. En dehors de la classe (en changeant directement la valeur de la propriété) :

instanceof
Vous pouvez utiliser le mot-clé instanceof pour vérifier si un objet appartient à une
classe spécifique :

3. PHP Constructor (Constructeur)


Le constructeur est une méthode spéciale (__construct) appelée automatiquement lors-
qu'un nouvel objet est créé (lors de l'appel à new Classe()). Il est utilisé pour initialiser l'état
de l'objet, c'est-à-dire attribuer des valeurs initiales aux propriétés.

18
Si vous créez une fonction __construct(), PHP appellera automatiquement cette
fonction lorsque vous créerez un objet à partir d'une classe.
Remarquez que la fonction construct commence par deux underscores (__)!
Nous voyons dans l'exemple ci-dessous que l'utilisation d'un constructeur nous évite
d'appeler la méthode set_name(), ce qui réduit la quantité de code :

Un autre exemple :

19
4. PHP Destructor (Destructeur)
Le destructeur est une méthode spéciale (__destruct) appelée automatiquement lorsque
l'objet est détruit ou que le script se termine. Il est rarement utilisé, mais peut servir à effec-
tuer des tâches de nettoyage (fermer des fichiers ou des connexions de base de données).

La fonction __destruct()
Un destructeur est appelé lorsque l'objet est détruit ou que le script est arrêté ou ter-
miné.
Si vous créez une fonction __destruct(), PHP appellera automatiquement cette fonc-
tion à la fin du script. Remarquez que la fonction destruct commence par deux tirets
bas (__)!
Remarquez que la fonction de destruction commence par deux sous-traits (__) !
L'exemple ci-dessous a une fonction __construct() qui est automatiquement appelée
lorsque vous créez un objet à partir d'une classe, et une fonction __destruct() qui est
automatiquement appelée à la fin du script :

Un autre exemple:

20
Conseil : Comme les constructeurs et les destructeurs aident à réduire la
quantité de code, ils sont très utiles !

5. PHP Access Modifiers (Modificateurs d'Accès)


Les modificateurs d'accès définissent la visibilité des propriétés et des méthodes d'une
classe (l'encapsulation).

Modificateur Visibilité Description


Accessible depuis la classe elle-même, les classes héritées
public Partout
et l'extérieur (l'objet).

Interne et Hé- Accessible depuis la classe elle-même et toutes les classes


protected
ritage qui en héritent. Inaccessible depuis l'extérieur.

Accessible uniquement depuis la classe elle-même. Inac-


private Interne
cessible dans les classes héritées et à l'extérieur.

21
Modificateurs d'accès
Les propriétés et les méthodes peuvent avoir des modificateurs d'accès qui
contrôlent où elles peuvent être accessibles.
Il existe trois modificateurs d'accès :
● public - la propriété ou la méthode peut être accessible
de partout. C'est par défaut.
● protégé - la propriété ou la méthode peut être accessible
au sein de la classe et par les classes dérivées de cette
classe
● privé - la propriété ou la méthode ne peut être acces-
sible QUE depuis l'intérieur de la classe
Dans l'exemple suivant, nous avons ajouté trois modificateurs d'accès différents à
trois propriétés (nom, couleur et poids). Ici, si vous essayez de définir la propriété
name, cela fonctionnera parfaitement (car la propriété name est publique et peut être
accessible de partout). Cependant, si vous essayez de définir la propriété color ou
weight, cela entraînera une erreur fatale (car les propriétés color et weight sont pro-
tégées et privées) :

par contre dans cette exemple nous avons crée des fonction protégée ce qui va
nous engendrer les erreur (parce que les deux fonctions sont considérées comme
protégées et privées), même si toutes les propriétés sont publiques :

22
6. PHP Inheritance (Héritage)
L'héritage permet à une classe enfant (ou sous-classe) de réutiliser et d'étendre les proprié-
tés et les méthodes d'une classe parente (ou super-classe). On utilise le mot-clé
extends.

L'héritage en POO = Quand une classe dérive d'une autre classe.

La classe enfant héritera de toutes les propriétés et méthodes publiques et proté-


gées de la classe parent. De plus, elle peut avoir ses propres propriétés et mé-
thodes.
Une classe héritée est définie en utilisant le mot-clé extends.
Regardons un exemple :

23
Exemple expliqué
La classe Strawberry hérite de la classe Fruit.
Cela signifie que la classe Strawberry peut utiliser les propriétés publiques $name et
$color ainsi que les méthodes publiques __construct() et intro() de la classe Fruit en
raison de l'héritage.
La classe Strawberry a également sa propre méthode : message().

Héritage et le Modificateur d'Accès Protégé


Dans la section précédente, nous avons appris que les propriétés ou méthodes pro-
tégées peuvent être accessibles au sein de la classe et par les classes dérivées de
cette classe. Qu'est-ce que cela signifie ?
Regardons un exemple :

Dans l'exemple ci-dessus, nous voyons que si nous essayons d'appeler une mé-
thode protégée (intro()) depuis l'extérieur de la classe, nous recevrons une erreur.
La méthode publique fonctionnera parfaitement !

24
Regardons un autre exemple:

Dans l'exemple ci-dessus, nous voyons que tout fonctionne bien ! C'est parce que
nous appelons la méthode protégée (intro()) depuis l'intérieur de la classe dérivée.

Redéfinir les méthodes héritées


Les méthodes héritées peuvent être redéfinies en utilisant les mêmes noms dans la
classe enfant.
Regardez l'exemple ci-dessous. Les méthodes __construct() et intro() dans la classe
enfant (Strawberry) remplaceront les méthodes __construct() et intro() dans la
classe parent (Fruit) :

Le mot-clé final
Le mot-clé final peut être utilisé pour empêcher l'héritage de classe ou pour empê-
cher la redéfinition de méthode.

25
L'exemple suivant montre comment empêcher l'héritage de classe :

L'exemple suivant montre comment empêcher la redéfinition de méthode :

7. PHP Constants (Constantes de Classe)


Les classes peuvent définir des constantes. Elles sont utilisées pour stocker des valeurs
fixes qui appartiennent à la classe elle-même et non aux objets individuels.
· Elles sont définies avec le mot-clé const.
· Elles sont accessibles sans instanciation de la classe.

Accès :
1. Depuis l'intérieur de la classe : self::NOM_CONSTANTE
2. Depuis l'extérieur : NomDeLaClasse::NOM_CONSTANTE

26
Constantes de classe
Les constantes de classe peuvent être utiles si vous avez besoin de définir des don-
nées constantes au sein d'une classe.
Une constante de classe est déclarée à l'intérieur d'une classe avec le mot-clé const.
Une constante ne peut pas être modifiée une fois qu'elle est déclarée.
Les constantes de classe sont sensibles à la casse. Cependant, il est recommandé
de nommer les constantes en lettres majuscules.
Nous pouvons accéder à une constante depuis l'extérieur de la classe en utilisant le
nom de la classe suivi de l'opérateur de résolution de portée (::) suivi du nom de la
constante, comme ici :

8. PHP Abstract Classes (Classes Abstraites)


Une classe abstraite est une classe qui ne peut pas être instanciée directement (on ne
peut pas faire new ClasseAbstraite()). Elle est conçue pour être héritée par d'autres classes.
· Elle peut contenir à la fois des méthodes régulières et des méthodes abstraites.
· Une méthode abstraite est une méthode déclarée (avec le mot-clé abstract) sans
implémentation (sans corps de fonction). Les classes enfants doivent obligatoire-
ment fournir l'implémentation de toutes les méthodes abstraites de leur parent (prin-
cipe d'abstraction).

27
Que sont les classes et méthodes abstraites ?
Les classes et méthodes abstraites sont lorsque la classe parente a une méthode
nommée, mais a besoin que ses classes enfants remplissent les tâches.
Une classe abstraite est une classe qui contient au moins une méthode abstraite.
Une méthode abstraite est une méthode qui est déclarée, mais non implémentée
dans le code.
Une classe ou une méthode abstraite est définie avec le mot-clé abstract :

Lors de l'héritage d'une classe abstraite, la méthode de la classe enfant doit être dé-
finie avec le même nom et le même modificateur d'accès ou un modificateur moins
restrictif. Donc, si la méthode abstraite est définie comme protégée, la méthode de la
classe enfant doit être définie comme protégée ou publique, mais pas privée. De
plus, le type et le nombre d'arguments obligatoires doivent être les mêmes. Cepen-
dant, les classes enfants peuvent avoir des arguments optionnels en plus.
Ainsi, lorsqu'une classe enfant hérite d'une classe abstraite, nous avons les règles
suivantes :La méthode de la classe enfant doit être définie avec le même nom et elle
redéclare la méthode abstraite du parent.
● La méthode de la classe enfant doit être définie avec le même nom et elle re-
déclare la méthode abstraite du parent.
● La méthode de la classe enfant doit être définie avec le même modificateur
d'accès ou un modificateur moins restrictif.

28
● Le nombre d'arguments requis doit être le même. Cependant, la classe enfant
peut avoir des arguments optionnels en plus.
Regardons un exemple :

Plus d'exemples de classes abstraites


Regardons un autre exemple où la méthode abstraite a un argument :

29
Regardons un autre exemple où la méthode abstraite a un argument, et la classe
enfant a deux arguments optionnels qui ne sont pas définis dans la méthode abs-
traite du parent :

9. PHP Interfaces (Interfaces)


Une interface est un contrat : elle définit une liste de méthodes (sans implémentation) que
toute classe qui l'utilise doit implémenter. On utilise le mot-clé interface pour la définir et
implements pour l'utiliser.
· Une classe peut implémenter plusieurs interfaces, mais ne peut hériter que d'une
seule classe.
· Toutes les méthodes d'une interface sont implicitement public et abstractes.

30
Que sont les interfaces ?
Les interfaces permettent de spécifier quelles méthodes une classe doit implémen-
ter.
Les interfaces facilitent l'utilisation de différentes classes de la même manière. Lors-
qu'une ou plusieurs classes utilisent la même interface, on parle alors de « polymor-
phisme ».
Les interfaces sont déclarées avec le mot-clé d'interface :

PHP - Interfaces vs. classes abstraites


Les interfaces sont similaires aux classes abstraites. La différence entre interfaces et
classes abstraites est la suivante :
● Les interfaces ne peuvent pas avoir de propriétés, tandis que les classes abs-
traites le peuvent
● Toutes les méthodes d'interface doivent être publiques, tandis que les mé-
thodes de classe abstraite sont publiques ou protégées
● Toutes les méthodes d'une interface sont abstraites, donc elles ne peuvent
pas être implémentées en code et le mot-clé abstrait n'est pas nécessaire
● Les classes peuvent implémenter une interface tout en héritant d'une autre
classe en même temps

PHP - Utilisation des interfaces


Pour implémenter une interface, une classe doit utiliser le mot-clé implémentés.
Une classe qui implémente une interface doit implémenter toutes les méthodes de
l'interface.

D'après l'exemple ci-dessus, supposons que nous souhaitions écrire un logiciel qui
gère un groupe d'animaux. Il y a des actions que tous les animaux peuvent accom-
plir, mais chaque animal les fait à sa manière.
En utilisant des interfaces, nous pouvons écrire un code qui peut fonctionner pour
tous les animaux même si chaque animal se comporte différemment :

31
Chat, Chien et Souris sont toutes des classes qui implémentent l'interface Animal, ce
qui signifie que toutes peuvent produire un son en utilisant la méthode make-
Sound(). Grâce à cela, nous pouvons boucler tous les animaux et leur dire de faire
un bruit même si nous ne savons pas quel type d'animal est chacun.
Puisque l'interface n'indique pas aux classes comment implémenter la méthode,
chaque animal peut produire un son à sa manière.

10. PHP Traits (Traits)


Les Traits sont une solution pour l'héritage multiple en PHP. Ils permettent à une classe de
réutiliser un ensemble de méthodes d'un autre objet sans utiliser l'héritage. On utilise le
mot-clé trait pour les définir et use pour les inclure dans une classe.

32
Que sont les traits ?
PHP ne prend en charge que l'héritage unique : une classe enfant ne peut hériter
que d'un seul parent seul.
Alors, que se passe-t-il si une classe doit hériter de plusieurs comportements ? Les
traits POO résolvent ce problème.
Les traits sont utilisés pour déclarer des méthodes pouvant être utilisées dans plu-
sieurs classes. Les traits peuvent avoir des méthodes et des méthodes abstraites
qui peuvent être utilisées dans plusieurs classes, et les méthodes peuvent avoir
n'importe quel modificateur d'accès (public, privé ou protégé).
Les traits sont déclarés avec le mot-clé du trait :

Pour utiliser un trait dans une classe, utilisez le mot-clé utiliser :

Prenons un exemple :

33
Exemple expliqué
Ici, nous déclarons un trait : message1. Ensuite, nous créons une classe : bienve-
nue. La classe utilise le trait, et toutes les méthodes du trait seront disponibles dans
la classe.
Si d'autres classes doivent utiliser la fonction msg1(), il suffit d'utiliser le trait mes-
sage1 dans ces classes. Cela réduit la duplication de code, car il n'est pas néces-
saire de redéclarer la même méthode encore et encore.

PHP - Utilisation de plusieurs traits


Prenons un autre exemple :

Exemple expliqué
Ici, nous déclarons deux traits : message1 et message2. Ensuite, nous créons deux
classes : Bienvenue et Bienvenue2. La première classe (Bienvenue) utilise le trait
message1, et la seconde classe (Bienvenue2) utilise à la fois les traits message1 et
message2 (plusieurs traits sont séparés par des virgules).

34
11. PHP Static Methods (Méthodes Statiques)
Une méthode déclarée avec le mot-clé static peut être appelée sans avoir besoin d'ins-
tancier la classe.
· Elles sont appelées en utilisant le nom de la classe et l'opérateur de résolution de
portée (::).
· Elles ne peuvent pas accéder aux propriétés non statiques de la classe (elles n'ont
pas de $this).

Méthodes statiques
Les méthodes statiques peuvent être appelées directement – sans créer d'abord une
instance de la classe.
Les méthodes statiques sont déclarées avec le mot-clé statique :

Pour accéder à une méthode statique, utilisez le nom de la classe, les deux-points
( ::), et le nom de la méthode :

Prenons un exemple :

Exemple expliqué

35
Ici, nous déclarons une méthode statique : welcome(). Ensuite, nous appelons la
méthode statique en utilisant le nom de la classe, les deux-points ( ::), et le nom de
la méthode (sans créer d'instance de la classe au préalable).

PHP - Plus sur les méthodes statiques


Une classe peut avoir des méthodes statiques et non statiques. Une méthode sta-
tique peut être accessible depuis une méthode de la même classe en utilisant le
mot-clé self et les deux-points ( ::) :

Les méthodes statiques peuvent également être appelées à partir de méthodes


d'autres classes. Pour cela, la méthode statique doit être publique :

Pour appeler une méthode statique depuis une classe enfant, utilisez le mot-clé par-
ent à l'intérieur de la classe enfant. Ici, la méthode statique peut être publique ou
protégée.

36
12. PHP Static Properties (Propriétés Statiques)
Une propriété déclarée avec le mot-clé static appartient à la classe et non à un objet spé-
cifique.
· Toutes les instances d'une classe partagent la même copie de la propriété statique.
· Elles sont souvent utilisées pour des compteurs ou des configurations globales à la
classe.

Accès :
1. Depuis l'intérieur de la classe (dans une méthode statique) : self::$nomPropriete
2. Depuis l'extérieur : NomDeLaClasse::$nomPropriete

Propriétés statiques
Les propriétés statiques peuvent être appelées directement – sans créer une ins-
tance d'une classe.
Les propriétés statiques sont déclarées avec le mot-clé statique :

Pour accéder à une propriété statique, utilisez le nom de la classe, les deux points
( ::), et le nom de la propriété :

Prenons un exemple :

37
Exemple expliqué
Ici, nous déclarons une propriété statique : $value. Ensuite, nous faisons écho à la
valeur de la propriété statique en utilisant le nom de la classe, les deux points ( ::), et
le nom de la propriété (sans créer d'abord de classe).
PHP - Plus sur les propriétés statiques
Une classe peut avoir des propriétés à la fois statiques et non statiques. Une pro-
priété statique peut être accessible depuis une méthode de la même classe en uti-
lisant le mot-clé self et les deux points ( ::) :

Pour appeler une propriété statique d'une classe enfant, utilisez le mot-clé parent à
l'intérieur de la classe enfant :

13. PHP Namespaces (Espaces de Noms)


Les espaces de noms (Namespaces) sont utilisés pour organiser le code et éviter les
conflits de noms entre des classes, fonctions ou constantes de même nom provenant de
différentes bibliothèques ou fichiers.
· Ils sont déclarés avec le mot-clé namespace au début du fichier.
· Ils créent un conteneur virtuel pour les éléments qu'ils contiennent.
PHP

38
<?php
// Fichier 1 : MonProjet/[Link]
namespace MonProjet\Utilitaires;

class Logger { /* ... */ }

// Fichier 2 : [Link]
use MonProjet\Utilitaires\Logger; // Importation de la classe

$log = new Logger(); // Maintenant, 'Logger' pointe vers la classe dans le namespace
?>

Espaces de noms PHP


Les espaces de noms sont des qualificateurs qui résolvent deux problèmes diffé-
rents :
1. Ils permettent une meilleure organisation en regroupant des classes qui tra-
vaillent ensemble pour accomplir une tâche
2. Ils permettent d'utiliser le même nom pour plusieurs classes
Par exemple, vous pouvez avoir un ensemble de classes qui décrivent un tableau
HTML, comme Table, Rangée et Cellule, tout en ayant un autre ensemble de
classes pour décrire le mobilier, comme Table, Chaise et Lit. Les espaces de noms
peuvent être utilisés pour organiser les classes en deux groupes différents tout en
évitant que les deux classes Tableau et Table ne soient confondus.

Déclaration d'un espace de noms


Les espaces de noms sont déclarés au début d'un fichier en utilisant le mot-clé
de l'espace de noms :
Déclarez un espace de noms appelé HTML :

Note : Une déclaration d'espace de noms doit être la première chose dans le fichier
PHP. Le code suivant est invalide :

Les constantes, classes et fonctions déclarées dans ce fichier appartiendront à l'es-


pace de noms HTML :
Créez une classe Table dans l'espace de noms HTML :

39
Pour une organisation plus poussée, il est possible d'avoir des espaces de noms im-
briqués :

Utilisation des espaces de noms


Tout code qui suit une déclaration d'espace de noms fonctionne à l'intérieur de cet
espace, de sorte que les classes qui y appartiennent peuvent être instanciées sans
aucun qualificatif. Pour accéder aux classes depuis l'extérieur d'un espace de noms,
la classe doit avoir l'espace de noms associé.
Utilisez des classes issues de l'espace de noms HTML :

Lorsque de nombreuses classes du même espace de noms sont utilisées en même


temps, il est plus facile d'utiliser le mot-clé de l'espace de noms :

40
Exemple
Utilisez les classes de l'espace de noms HTML sans avoir besoin du Html\qualifi-
caer :

Alias de l'espace de noms


Il peut être utile de donner un namespace ou une classe un alias pour faciliter l'écri-
ture. Cela se fait avec le mot-clé d'utilisation :
Exemple
Donnez un alias à un espace de noms :

Exemple
Donnez un alias à une classe :

14. PHP Iterables (Itérables)


Un itérable est un pseudo-type qui peut être utilisé comme indice de type pour les fonctions
qui acceptent un tableau ou un objet implémentant l'interface Traversable (comme les ta-
bleaux ou les objets Iterator).
· Il indique qu'un paramètre ou une valeur de retour peut être parcouru par une boucle
foreach.

41
Un itérable est toute valeur pouvant être bouclée avec une boucle foreach( ).
Le pseudo-type itérable a été introduit dans PHP 7.1, et peut être utilisé
comme type de données pour les arguments de fonction et les valeurs de retour de
fonction.

PHP - Utilisation des itérables


Le mot-clé itérable peut être utilisé comme type de données d'un argument de
fonction ou comme type de retour d'une fonction :
Exemple

Utilisez un argument de fonction itérable :

Exemple
Retournez un itérable :

42
PHP - Création d’itérables
Tableaux
Tous les tableaux sont itérables, donc n’importe quel tableau peut être utilisé comme
argument d’une fonction nécessitant un itérable.
Itérateurs
Tout objet qui implémente l’interface itérateur peut être utilisé comme argument
d’une fonction nécessitant un itérable.
Un itérateur contient une liste d’éléments et fournit des méthodes pour les parcourir.
Cela garde un pointeur vers un des éléments de la liste. Chaque élément de la liste
doit avoir une clé qui peut être utilisée pour trouver l’élément.
Un itérateur doit posséder les méthodes suivantes :
· current() - Retourne l’élément vers lequel le pointeur pointe actuellement. Ce-
la peut être n’importe quel type de données
· key() renvoie la clé associée à l’élément courant de la liste. Elle ne peut être
qu’un entier, un float, un booléen ou une chaîne
· next() déplace le pointeur vers l’élément suivant de la liste
· rewind() Déplace le pointeur vers le premier élément de la liste
· valid() Si le pointeur interne ne pointe vers aucun élément (par exemple, si
next() a été appelé à la fin de la liste), cela devrait revenir faux. Cela revient
vrai dans tout autre cas
Exemple
Implémentez l’interface Iterator et utilisez-la comme itérable :

43
44

Vous aimerez peut-être aussi