L’héritage en programmation orientée objet avec PHP

L’héritage simple

Il est possible que des classes partagent des attributs et des méthodes. Ce principe est défini par la notion d’héritage qui fait que les classes peuvent être vues comme un ensemble de catégories et de sous catégories.

Pour définir un héritage entre deux classes il faut utiliser le mot-clé extends après le nom de la classe dans sa déclaration.

Exemple:

Le code ci-dessus définit une classe MountainBike qui hérite de la classe BiCycle. La classe MountainBike peut ainsi utiliser tous les attributs et toutes les méthodes de la classe BiCycle.

Il est aussi possible pour la classe MountainBike de redéfinir des attributs ou des méthodes portant les mêmes noms que la classe BiCycles.

Les traits

Les traits sont un mécanisme permettant de réutiliser du code.

Un trait peut être vu comme un ensemble de méthodes qui peuvent être incluses dans d’autres classes. Le contenu du trait est copié dans la classe qui veut l’utiliser. Il n’y a pas besoin d’instancier un trait.

L’avantage des traits est de réduire la duplication de code et de permettre l’utilisation de méthodes de classe sans avoir à passer par la notion d’héritage.

Un trait se définit en utilisant le mot-clé trait.

Pour inclure un trait dans une classe, il faut utiliser le mot-clé use.

La méthode maFonction() est maintenant disponible dans chaque instance de la classe maClasse.

Ce code va afficher :

I Love Opentuto.com!

Les classes abstraites

Une classe abstraite est une classe utilisée pour définir un type d’objet très générique, inutilisable directement, qui force les sous-types à avoir certaines particularités.

Une classe abstraite définit des méthodes et des attributs qui seront disponibles dans les classes qui l’étendent.

Pour indiquer qu’une classe est abstraite, il faut la préfixer du mot abstract.

Pour définir une classe abstraite voiture il faut écrire :

Il est aussi possible de définir des méthodes abstraites dans une classe. Cela permet d’obliger les classes dérivées à implémenter ces méthodes. Pour déclarer une méthode comme abstraite, il faut la préfixer du mot abstract.

Une classe contenant au moins une méthode abstraite doit obligatoirement être définie comme abstraite.

Par exemple, en définissant une classe abstraite comme suit :

Il est possible de définir une classe fille comme suit :

Ce qui permet d’écrire :

Les interfaces

Les interfaces sont utilisées pour vérifier que les objets correspondent à certaines spécifications, c’est-à-dire que chaque objet est conforme à certains comportements, qu’il peut gérer certains types d’évènements ou qu’il possède certaines fonctionnalités.

Pour déclarer une interface, il faut utiliser le mot-clé interface. Les méthodes définies dans une interface sont forcément publiques.

Pour indiquer qu’une classe implémente une interface précise, il faut utiliser le mot-clé implements. Une classe peut implémenter plusieurs interfaces. Dans ce cas, les noms des différentes interfaces sont séparés par des virgules.

  • Les interfaces peuvent hériter d’autres interfaces.
  • Les classes abstraites peuvent implémenter des interfaces.

 

Déclarer une classe et instancier un objet

Déclarer une classe et instancier un objet en PHP

Il est recommandé de lire cet article avant d’entamer ce post : Qu’est-ce que une classe, un objet et une instance

Déclarer une classe

Pour définir une nouvelle classe, il faut utiliser le mot-clé class. Ce mot est suivi du nom de la classe puis d’un bloc d’accolades contenant les propriétés et les méthodes définies.

La déclaration d’un attribut se fait en utilisant la syntaxe de déclaration des variables précédée d’un des mots-clés suivants :

  • private : l’attribut n’est accessible qu’à l’intérieur de la classe.
  • protected : l’attribut est accessible à l’intérieur de la classe et des classes dérivées.
  • public : l’attribut est accessible depuis toutes les classes de l’application.

La déclaration d’une méthode se fait en utilisant la syntaxe de déclaration des fonctions précédée d’un mot-clé identique à ceux utilisés pour déclarer un attribut.

Exemple :

Ce code définit une classe Bicycle contenant un attribut $cadence accessible uniquement dans cette classe, un attribut $speed accessible par des classes dérivées de cette classe ainsi qu’un attribut $gear et une méthode changeCadence accessibles par toute l’application.

Instancier un objet

Pour pouvoir utiliser un objet, il faut le créer à partir d’une classe.

L’instanciation d’un objet se fait en utilisant la syntaxe d’affectation précédée du mot-clé new.

Exemple :

Ce code va instancier un objet de la classe Bicycle.

Maintenant qu’une instance est disponible, il est possible d’avoir accès à ses attributs et ses méthodes.

Exemple :

Qu'est-ce que une classe, un objet et une instance

Qu’est-ce que une classe, un objet et une instance

Pour comprendre la programmation orientée objet, il est primordial de bien connaitre son vocabulaire.

Qu’est-ce qu’un objet ?

Pour faire simple, un objet est une chose.

Il est possible de définir par exemple un objet télévision, voiture, bureau, musique… Un objet peut donc être vu comme une donnée à manipuler.

Chaque objet est défini par des attributs et des méthodes qui lui sont propres.

Un attribut est une caractéristique de l’objet. Par exemple, un objet voiture peut avoir un attribut couleur.

Une méthode est une action qui peut être appliquée à un objet. Par exemple, un objet voiture peut avoir une méthode accélérer.

Qu’est-ce qu’une classe ?

Une classe correspond à un modèle de données. En effet, tous les objets d’une classe partagent les mêmes attributs et méthodes.

Une classe peut être vue comme une famille d’objets.

Par exemple, tous les objets de la classe voiture ont un attribut couleur et une méthode accélérer.

Qu’est-ce qu’une instance ?

Une instance représente une entité particulière d’une classe.

Par exemple, une voiture rouge peut être une instance de la classe voiture.

En résumé, un objet est une instance de classe.

Pourquoi utiliser la programmation orientée objet

Pourquoi utiliser la programmation orientée objet

Pourquoi utiliser la programmation orientée objet ?

La programmation orientée objet amène certains avantages par rapport à la programmation procédurale.

Tout d’abord elle permet d’obtenir un code plus réutilisable. En effet, les types d’objets créés peuvent servir de base pour d’autres objets en ne développant que les évolutions nécessaires.

Ensuite cette programmation offre un code plus compréhensible. En effet, chaque objet va contenir ses propriétés et ses méthodes. Il est donc aisé de voir ce qu’une fonction manipule et à quoi correspondent les variables disponibles.

Enfin la programmation orientée objet amène un code modulaire. En effet, chaque type d’objet ne communique avec les autres types que par des interfaces connues et définies. Cet isolement permet donc de développer facilement d’autres modules pour interagir avec les interfaces déjà utilisées.

Les variables php

Les variables en PHP

Définition

Une variable est une zone mémoire identifiée par un nom qui contient une valeur lisible ou modifiable dans le programme.

Initialisation et affectation

Les variables en PHP sont identifiées par le préfixe $ suivi du nom de la variable.

Le nom des variables est sensible à la casse : $prenom et $Prenom sont vues par PHP comme deux variables différentes.

Les variables PHP sont :

  • Automatiquement définies lors de leur première utilisation.
  • Typées automatiquement; lors de chaque affectation d’une valeur à une variable, le type de la variable est automatiquement défini ou redéfini
Une valeur peut être affectée à une variable grâce à l’opérateur d’affectation “=”

Exemple:

Résultat:

$prenom = Mehdi $prenom = 12345

Portée et durée de vie

La portée d’une variable (Variable scope en anglais) est le script dans lequel elle est définie. Une variable peut donc être définie dans une première section de code PHP et utilisée dans une autre section de code PHP du même script.

La durée de vie d’une variable (variable life cycle en anglais) est le temps de l’exécution du script. Lorsque le script se termine, les variables sont supprimées. Si le même script est appelé plus tard, de nouvelles variables sont définies.

 

Les constantes en php

Les constantes en PHP

Définition

Tout comme une variable, une constante stocke une valeur mais, contrairement à une variable, cette valeur est fixée “une fois pour toutes” et ne peut plus être modifiée à un autre endroit du script. Par convention, on écrit les constantes en majuscules.

La fonction define ou le mot-clé const (depuis la version 5.3) permettent de définir une constante.

Syntaxe

booléen define(chaîne nom, mixte valeur[, booléen sensible_casse)

const nom = valeur

nom Nom de la constante.
valeur Valeur de la constante.
sensible_casse Indique si le nom de la constante est sensible à la casse (TRUE – valeur par défaut) ou non (FALSE).
  • La fonction define retourne TRUE en cas de succès et FALSE en cas d’erreur.
  • Tout type de donnée scalaire peut être utilisé comme type de donnée d’une constante.
  • Le nom d’une constante ne doit pas commencer par un $ car ce préfixe est réservé au nom des variables
Une fois créée, une constante n’est plus modifiable, ni par un nouvel appel à define (retourne FALSE et laisse la valeur de la constante inchangée), ni par une affectation directe (génère une erreur d’analyse du script).

Exemple

Résultat

Mon site web préféré est = OPENTUTO

Mon cours préféré est= PHP 5.5

Portée

La portée d’une constante est le script dans lequel elle est définie. Une constante peut donc être définie dans une première section de code PHP et utilisée dans une autre section de code PHP du même script.

Exemple:

Résultat

Mon site web préféré OPENTUTO.COM !

BONUS

La fonction defined : permet de savoir si une constante est définie ou non. defined retourne TRUE si la constante est définie et FALSE dans le cas contraire.

Syntaxe

booléen defined(chaîne nom)

La fonction constant : retourne la valeur d’une constante dont le nom est passé en paramètre.

Syntaxe

mixte constant(chaîne nom)

Structure de base d’une page PHP

Structure de base d’une page PHP

Les balises PHP

Le code PHP est inclus dans une page HTML à l’intérieur de balises (aussi appelées tags).

PHP accepte quatre syntaxes pour les balises :

  • <?php ... ?>
  • <script language="php"> ... </script>
  • <? ... ?>
  • <% ... %>

La première syntaxe est la syntaxe habituelle, recommandée.

La fonction echo

La fonction echo permet d’afficher une ou plusieurs chaînes. Sa syntaxe est la suivante :

echo(chaîne texte)

echo chaîne texte[,...]

texte : texte à afficher.

Exemple :

Résultat

La fonction echo

La fonction echo

Le séparateur d’instructions

En PHP, toutes les instructions doivent se terminer par un point-virgule.

Exemple

Résultat

Le séparateur d’instructions

Le séparateur d’instructions

En cas d’omission, une erreur est générée.

Le commentaire

PHP propose deux syntaxes :

  • // ou # pour insérer du commentaire sur une ligne “dédiée” ou à la suite d’une instruction.
  • /* ... */ pour insérer du commentaire sur plusieurs lignes.

Exemple :

Mixer du PHP et de l’HTML

Il est tout à fait possible de mixer PHP et HTML.

Exemple 1:

Dans ce premier exemple, nous avons crée une page contenant du code PHP en un seul endroit.

Exemple 2 :

Pour ce deuxième exemple, nous avons crée une page générée entièrement par du code PHP.

Vous avez donc le choix entre la première ou la deuxième méthode pour mixer du PHP et de l’HTML.

JavaScript Array

JavaScript Array :

JavaScript Array est une collection qui regroupe des éléments de même type, nous avons 3 méthodes pour créer un array :

1 – Initialisateur d’objet (Array) :

  • Syntaxe :

  • Exemple :

  • Résultat :

2 – le mot clé new :

Nous allons voir comment faire pour créer une instance array en utilisant le mot clé new.

  • Syntaxe :

  • Exemple :

  • Résultat :

3 – En utilisant un constructeur :

La troisième et dernière méthode pour créer une instance, c’est l’utilisation du constructeur.

  • Syntaxe :

  • Exemple :

  • Résultat :

 

JavaScript String

JavaScript String :

Javascript String est un objet qui représente une séquence de caractère.

1- Comment créer un objet string en javascript :

Il y a en fait deux méthodes pour créer un objet javascript string :

       – Initialisateur d’objet (String) :

un objet string en javascript  est crée en utilisant les guillemet (doubles quotes).

Syntaxe : 

Exemple :

Résultat :

      – En utilisant le mot clé New :

Syntaxe :

Exemple :

Résultat :

2- Les méthodes String en javascript :

Nous allons voir quelques méthodes string qui nous permet de manipuler les chaines de caractères.

  • charAt(position) : retourne le caractère dans la position demandée.

Résultat :

  • toUpperCase() : retourne la valeur en majuscule.

Résultat :

  • toLowerCase() : retourne la valeur en minuscule.

Résultat :

 

Les structures répétitives

javascript2

Les structures répétitives :

Une structure répétitive, également appelée structure itérative ou encore boucle, permet de répéter plusieurs fois l’exécution d’une ou plusieurs instructions.

La boucle for :

Elle est utilisée dans le cas ou le nombre d’itération est connu

Syntaxe : 

Exemple :

La boucle While :

Il est recommandé d’utiliser la boucle while dans le cas ou le nombre d’itérations est inconnu.

Syntaxe :

Exemple :

La boucle Do…While :

Il est recommandé d’utiliser la boucle while dans le cas ou le nombre d’itérations est inconnu, la seule différence entre cette boucle et la boucle while c’est que la boucle do…while exécute le code au moins une fois même si la condition d’arrêt n’est pas vérifiée.

Syntaxe :

Exemple :