Apprendre à coder sur pierre-giraud.com

DES COURS COMPLETS ET GRATUITS POUR TOUS

SOMMAIRE

Introduction

  1. Présentation du cours
  2. Introduction au PHP
  3. Mettre en place un env. de travail

Les bases en PHP

  1. Syntaxe de base du PHP
  2. Premières instructions PHP
  3. Introduction aux variables PHP
  4. Types de valeurs et concaténation
  5. Opérations sur les variables
  6. Conditions et opérateurs de comparaison
  7. Les conditions if, if...else et if... elseif... else
  8. Utilisation avancée des conditions
  9. Structures ternaires et switch
  10. Les boucles PHP
  11. Découverte des fonctions
  12. La portée des variables
  13. Les constantes PHP
  14. Les variables tableaux PHP
  15. Tableaux associatifs
  16. Tableaux multidimensionnels
  17. Test n°1

Gestion des dates en PHP

  1. Le timestamp
  2. Obtenir et formater une date
  3. Tester la validité d'une date
  4. Test n°2

Opérations sur les fichiers en PHP

  1. Lire, ouvrir, fermer un fichier
  2. Parcourir et lire un fichier par partie
  3. Créer un fichier et écrire dedans
  4. Ecrire dans un fichier
  5. Les instructions include et require
  6. Test n°3

Les variables superglobales

  1. Découverte des variables superglobales
  2. Les cookies
  3. Les sessions
  4. Test n°4

Les expressions régulières et PHP

  1. Découverte des regex
  2. Les fonctions PHP PCRE
  3. Quantifieurs et options
  4. Classes de caractères
  5. Test n°5

L'orienté objet en PHP

  1. Classes, instances et objets
  2. Propriétés et méthodes
  3. Extension de classe et héritage
  4. Le principe d'encapsulation
  5. La méthode constructeur
  6. L'opérateur de résolution de portée et la surcharge
  7. Constantes, méthodes et propriétés statiques
  8. Les classes et méthodes abstraites
  9. Les interfaces
  10. Les méthodes magiques
  11. Le chainage de méthodes
  12. Test n°6

Notions avancées en POO

  1. Le typage explicite
  2. Les traits
  3. Les closures et les classes anonymes
  4. L'auto-chargement des classes
  5. Le mot clef final
  6. Résolution statique à la volée
  7. Parcourir des objets
  8. Le clonage d'objets
  9. Comparaison d'objets
  10. Test n°7

Filtres, erreurs et exceptions

  1. Introduction aux filtres
  2. Utilisation pratique des filtres
  3. Gérer les erreurs en PHP
  4. Gérer les exceptions en PHP

LE CLONAGE D'OBJETS EN PHP

Le mot clef clone et la méthode magique __clone()

Dans certains cas, on voudra copier un objet afin de manipuler la copie à souhait plutôt que l’objet original.

Dans ces cas-là, on va utiliser le mot clef clone qui va faire appel à la méthode magique __clone() de l’objet de départ si celle-ci a été définie. Notez qu’on ne peut pas directement appeler la méthode __clone().

Lorsque l’on clone un objet, le PHP va en fait réaliser une copie de toutes les propriétés relatives à l’objet. Notez ici que les propriétés qui sont des références à d’autres objets continueront à faire référence aux mêmes objets.

Lors du clonage d’objet, si une méthode __clone() a été définie dans l’objet que l’on souhaite cloner, la méthode __clone() du nouvel objet (c’est-à-dire du clone) va être automatiquement appelée ce qui va nous permettre de mettre à jour les propriétés souhaitées.

Le clonage d'objets en pratique

Implémentation d'une méthode magique __clone() en PHP

Ici, on commence par définir une classe Humain et son constructeur qui va servir à donner des noms à nos humains dans un fichier humain.class.php.

On définit également une méthode __clone() afin de pouvoir cloner nos objets. On lui demande de modifier la valeur de la propriété nom du clone par rapport à l’objet original.

Finalement, on ajoute deux méthodes getNom() et setNom() dans notre classe dont le rôle est de renvoyer et de définir ou modifier le nom de nos objets Humain.

Clonage d'un objet en programmation orientée objet PHP

Utilisation d'un objet cloné en PHP orienté objet

Dans notre fichier principal, on commence par inclure notre classe et on crée un premier objet à partir de celle-ci qu’on clone ensuite . On place le clone de notre objet $pierre dans un variable objet qu’on appelle $copie.

On utilise notre méthode getNom() afin d’observer les résultats et de contrôler si tout fonctionne bien. Enfin, on modifie le nom de notre clone avec notre méthode setNom() et on affiche le nouveau nom du clone et le nom de l’objet original.

Comme vous pouvez le constater, changer le nom du clone n’a pas d’impact sur le nom de l’objet original.

Chapitre précédent

Chapitre suivant