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

POO PHP : CLASSES, INSTANCES ET OBJETS

Qu’est-ce que la POO ?

La programmation orientée objet correspond à une autre façon de construire son script et d’organiser son code.

Jusqu’à présent, nous n’avons organisé notre code que de manière procédurale : notre script s’exécutait ligne après ligne dans l’ordre de son écriture.

Ecrire son code de manière orientée objet va nous permettre de construire notre script différemment et d’avoir un code plus clair et plus simple à maintenir.

Par ailleurs, notez que tous les langages serveurs ambitieux nous offrent la possibilité de développer en orienté objet car cette nouvelle manière de coder possède de nombreux avantages qu’on va découvrir ensemble par la suite.

L’orienté objet en PHP parait compliqué à priori pour des débutants car nous allons introduire une toute nouvelle syntaxe et une autre manière de penser, et c’est pour cela que de nombreuses personnes n’aiment pas cette partie et font l’impasse dessus.

Je vous conseille cependant de vous accrocher car la POO n’est en fait pas difficile à comprendre en soi, il suffit de la prendre pour ce qu’elle est : une autre façon de coder.

Dès que vous aurez compris le rôle des différents nouveaux éléments que nous allons introduire, tout deviendra clair.

Classes, instances et objets : définition et découverte

La programmation orientée objet se base sur un concept fondamental qui est que tout élément dans un script est un objet ou va pouvoir être considéré comme un objet. Qu’est-ce qu’un « objet » précisément ? Nous allons le comprendre ensemble immédiatement.

Pour comprendre ce qu’est un objet, nous devons avant tout nous intéresser aux classes.

Une classe est un bloc cohérent de code pouvant contenir des variables et des fonctions et qui va nous servir de plan pour créer des objets.

En PHP, on crée une nouvelle classe avec le mot clef class. On peut donner n’importe quel nom à une nouvelle classe du moment qu’on n’utilise pas un mot réservé du PHP et que le premier caractère du nom de notre classe soit une lettre ou un underscore.

Illustrons immédiatement ce qu’on vient de dire afin de rendre le tout plus concret et créons notre première classe ensemble.

Avant tout, notez qu’on créera par convention un nouveau fichier pour chaque nouvelle classe créée. On n’aura ensuite qu’à inclure avec une instruction include() par exemple les fichiers de classes nécessaires à l’exécution de notre script principal dans celui-ci.

Nous allons également généralement placer tous nos fichiers de classes dans un dossier « classes » pour plus de simplicité.

On va donc créer un nouveau fichier en plus de notre fichier principal cours.php qu’on va appeler humain.class.php. Notez qu’on appellera généralement nos fichiers de classe « maClasse.class.php » afin de bien les différencier des autres et par convention une nouvelle fois.

Dans ce fichier de classe, nous allons donc pour le moment tout simplement créer une classe Humain avec le mot clef class.

On crée une nouvelle classe PHP dans un fichier dédié

Pour le moment, notre classe est vide. Vous pouvez remarquer que la syntaxe générale de déclaration d’une classe ressemble à ce qu’on a déjà vu avec les fonctions.

Nous allons également directement en profiter pour inclure notre classe dans notre fichier principal cours.php avec une instruction include(). Ici, mon fichier de classe est dans un sous-dossier « classes » par rapport à mon fichier principal.

On inclut notre classe dans notre script principal

Ensuite, nous allons rajouter la ligne suivante dans notre fichier principal :

On créé une nouvelle instance de notre classe

Ci-dessus, nous avons créé ce qu’on appelle une nouvelle instance de notre classe Humain.

La syntaxe peut vous sembler particulière et c’est normal : rappelez-vous que je vous ai dit que le PHP orienté objet utilisait une syntaxe différente du PHP conventionnel.

Pour le moment, retenez qu’on utilise le mot clef new pour instancier une classe c’est-à-dire créer une nouvelle instance d’une classe.

Une instance correspond à la « copie » d’une classe. Le grand intérêt ici est qu’on va pouvoir effectuer des opérations sur chaque instance d’une classe sans affecter les autres instances. Par exemple, imaginons que vous lanciez deux fois le logiciel Word. Vous allez pouvoir utiliser chaque instance de Word de façon différente de l’autre, écrire différentes choses dans les pages, etc.

Créer une instance comme cela va cependant s’avérer inutile en soi puisque nous ne pouvons toujours pas la manipuler ni même y accéder.

Pour accéder à une instance de classe et pouvoir la manipuler à loisir, nous allons tout simplement stocker notre instance dans une variable. Cette variable stockant une instance est typiquement ce qu’on appelle un objet.

Pour être tout à fait précis, notre variable en question ne va exactement contenir l'objet en soi, mais pour l'instant nous allons considérer que c'est le cas. Nous reparlerons de ce point relativement complexe en fin de partie.

On stocke notre instance dans une variable qu'on va appeller un objet

Classes, instances et objets : l’essentiel à retenir

Une classe est un « plan d’architecte » à partir de laquelle on va pouvoir créer des objets en instanciant la classe (en créant une nouvelle instance de la classe).

Pour l’instant, nous n’avons créé qu’une classe vide et donc il est possible que vous ne compreniez pas encore l’intérêt des classes. Dès le chapitre suivant, nous allons inclure des variables et des fonctions dans notre classe et plus le cours va avancer, plus vous allez comprendre les différents avantages de programmer en orienté objet et des classes. Je ne peux juste pas tout vous révéler d’un coup, il va falloir y aller brique après brique.

Une instance est une copie de classe. En soi, une instance est inutilisable. Nous allons donc stocker nos instances dans des variables pour pouvoir les utiliser. Les variables stockant des instances sont appelées des (variables) objets.

En résumé et pour rendre cela plus simple, on peut prendre l’exemple de création de maisons. Une classe va alors être l’équivalent de notre plan d’architecte : à partir de ce plan, on peut créer autant de maisons que l’on souhaite, ces maisons étant structurellement identiques. Les maisons créées vont être l’équivalent de nos objets. Finalement, une instance va correspondre à la façon dont on va identifier une maison en particulier tandis que l’objet n’est que la maison en soi.

Notez cependant qu’en POO les termes « instance » et « objet » sont souvent utilisés indifféremment car leur signification va être très proche. En effet, lorsque nous instancions une classe (lorsque nous créons une nouvelle instance de classe), nous allons quasiment à chaque fois la stocker dans une variable objet pour pouvoir la manipuler. En cela, donc, nous allons souvent confondre le fait d’instancier une classe et de créer un objet même si ce n’est pas tout à fait juste.

En bref : pas d’inquiétude si vous ne saisissez pas encore bien la nuance entre instance et objet. Cela n’aura pas beaucoup d’incidence sur la suite de ce cours ni sur votre carrière de développeur.

Chapitre précédent

Chapitre suivant