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

LA METHODE CONSTRUCTEUR D’UNE CLASSE

Qu’est-ce qu’un constructeur ?

En programmation orientée objet, vous entendrez souvent parler de « constructeur ».

Un constructeur est en fait une méthode qui va nous permettre de rendre notre classe immédiatement opérationnelle et utilisable en définissant des propriétés dès qu’un utilisateur va vouloir créer une nouvelle instance de cette classe.

Il n’est nullement obligatoire de définir un constructeur lorsque l’on crée une classe mais cela est fortement recommandé car il sera par la suite beaucoup plus simple et plus rapide de travailler avec les objets créés à partir de cette classe en procédant de cette manière et car on peut l'utiliser pour forcer des développeurs externes à définir des valeurs dont nos objets vont avoir besoin pour fonctionner.

Comment fonctionne un constructeur ?

Plus haut, j’ai dit que la méthode constructeur permettait de définir des éléments dans notre classe de manière systématique. Mais comment cela fonctionne vraiment ?

En fait, vous devez juste bien comprendre que le PHP va par défaut rechercher cette méthode constructeur et chercher à l’exécuter dès qu’un objet va être créé à partir de notre classe.

Cela va donc nous permettre de définir des propriétés avec des valeurs propres au moment où un objet est créé plutôt que d’avoir à appeler des méthodes de classe par la suite pour les définir.

Utiliser un constructeur permet donc également de poser des jalons et d’être bien sûr que telle ou telle propriété a bien été définie. Cela peut permettre entre autre une meilleure structuration du code.

Créer un constructeur

On déclare un constructeur de classe avec la méthode __construct() (notez bien le double underscore en début de nom). La méthode __construct() est une méthode dite magique. Nous reparlerons des méthodes magiques plus tard dans cette partie.

Prenons immédiatement un exemple en modifiant le code de notre classe Humain créée dans les chapitres précédents.

Définition d'un premier constructeur en POO PHP

Ici, nous commençons par définir deux propriétés avec la visibilité protected : les propriétés $nom et $dateInscrit.

Ensuite, on crée notre constructeur de classe avec __construct().

Notre constructeur va pouvoir recevoir un argument qui sera la valeur stockée dans la propriété $nom relative à chaque nouvel objet. On nomme ici le paramètre $nouveauNom plutôt que « toto » ou « nom » afin d’être explicite et de ne pas utiliser deux fois le même mot dans notre script.

Ensuite, notre fonction constructeur se charge de définir la valeur à stocker dans $dateInscrit. Dès que le constructeur va être exécuté, la fonction date() va l’être également et cette fonction va nous renvoyer la date courante au format « jour-mois-année heures:minutes:secondes ».

Finalement, on crée nos deux getters pour pouvoir récupérer le nom et la date de création de l’objet.

Exécutons ce code et commentons le résultat immédiatement.

Utilisation d'un constructeur fonctionnel de classe en POO PHP

Première utilisation d'un constructeur de classe en POO PHP

Pour que le script fonctionne, on doit ici passer la valeur à stocker dans la propriété $nom dès que l'on souhaite créer un objet à partir de notre classe Humain puisque notre constructeur a besoin de cette valeur pour justement construire l'objet.

Notre méthode constructeur va en fait être exécutée automatiquement par le PHP à chaque nouvelle instanciation de notre classe (et donc dans notre cas création d'objet) et va stocker la date exacte à laquelle l’objet a été créé dans la propriété $dateInscrit.

Ensuite, on se contente dans notre script d’appeler les méthodes getNom() et getDateInscrit() définies dans notre classe afin d’afficher les valeurs relatives au nom de notre objet ainsi qu’à la date de création.

Constructeur et classes filles

Vous pouvez noter que les classes filles vont également utiliser le constructeur de leur parent par défaut sauf si un nouveau constructeur est défini spécifiquement pour une classe fille bien évidemment.

Ainsi, on va pouvoir utiliser le constructeur de notre classe Humain pour créer des objets de la classe fille Francais.

Les classes filles vont avoir accès au constructeur de leur parent

On utilise le constructeur parent avec un objet d'une classe fille

Le constructeur de la classe parent a été utilisé pour un objet d'une classe fille

Ici, nous avons légèrement modifié le code de notre classe fille Francais afin de ne pas perturber le fonctionnement du constructeur de la classe parent Humain.

Comme vous pouvez le voir, on peut tout à fait passer le nom de notre objet $pierre directement lors de sa création. En effet, le PHP va commencer par chercher si la classe Francais possède un constructeur puis si il ne trouve pas de constructeur il va rechercher si la classe parent en possède un et etc.

Ici, PHP trouve le constructeur de la classe parent Humain et l’utilise lors de la création de $pierre. C’est pour cela qu’on peut également afficher la date de création de cet objet en utilisant la méthode getDateInscrit().

Chapitre précédent

Chapitre suivant