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

EMPECHER LA SURCHARGE AVEC LE MOT CLEF FINAL

Le mot clef final en orienté objet PHP

Depuis PHP 5 on peut empêcher les classes filles de surcharger une méthode en précisant le mot clef final avant la définition de celle-ci.

Si la classe elle-même est définie avec le mot clef final alors celle-ci ne pourra tout simplement pas être étendue.

Cela peut être utile si vous souhaitez empêcher explicitement certains développeurs de surcharger certaines méthodes ou d’étendre certaines classes dans le cas d’un projet Open Source par exemple.

Définir une méthode finale

Illustrons cela avec quelques exemples, en commençant avec une méthode finale.

Pour cela, nous allons déjà reprendre nos deux classes Humain et Francais et les modifier comme ceci :

Création d'une première classe PHP

Création d'une deuxième classe PHP

Si on créé deux nouveaux objets à partir de nos deux classes et qu’on tente d’exécuter la méthode getNom() à chaque fois tout fonctionne bien : la méthode est bien surchargée dans la classe fille.

On tente de surcharger la méthode de notre classe parent

La méthode de notre classe parent a bien été surchargée par la classe fille

Maintenant, définissons la méthode comme finale dans la classe parent et tentons à nouveau de l’utiliser depuis un objet appartenant à la classe fille.

On définit une méthode avec le mot clef final dans notre classe PHP

On tente de surcharger une méthode définie comme finale en PHP

On tente d'exécuter une méthode finale surchargée

Notre méthode finale ne peut pas être surchargée : le PHP renvoie une erreur finale

Comme vous pouvez le voir, le PHP renvoie une erreur fatale.

Définir une classe finale

Il va se passer exactement la même chose si on définit une classe avec le mot clef final : dans ce cas-là, la classe ne pourra pas être étendue et si on tente de le faire le PHP renverra une erreur fatale.

On peut définir une classe comme finale pour empêcher sa surcharge en PHP

On tente d'étendre une classe finale en PHP

On tente d'exécuter une méthode de notre classe fille étendant une classe finale

Le PHP rnevoie une erreur : on ne peut pas étendre une classe finale

Notez finalement que les propriétés ne peuvent pas être définies comme finales : ce mot clef est réservé aux méthodes et aux classes seules.

Chapitre précédent

-

Chapitre suivant