Informatique


La classe

Wablief, la classe?

A l'origine de chaque objet il y a une classe, elle représente la description (propriétés et méthodes) d'un objet.
La classe est une sorte de plan, un peu comme le plan d'une maison!
Avec le plan d'une maison on peut créer une infinité de maison bâties sur ce même plan.

A partir d'une classe on peut créer autant d'objets que l'on veut! La classe est le plan selon lequel chaque objet est créé.

Le mot clé class permet de créer une classe, chaque classe est de type object, il s'agit donc d'un nouveau type de variable!

A partir d'une classe on peut générer autant d'objets ou d'instances que nécessaire, chaque instance ayant un nom particulier.

Le mot clé new permet de créer un objet sur une classe particulière.

Les mots à retenir:

  • la classe, c'est la description des propriétés et des méthodes de l'objet
  • l'instance, c'est un objet (une super variable) créé à partir de la classe
  • les propriétés, ce sont des variables qui caractérisent l'objet
  • les méthodes, ce sont des fonctions qui modifient l'objet

Par convention:

  • le nom de la classe débute par une majuscule
  • la classe sera décrite dans un fichier dédié qui portera le nom de la classe qu'il décrit.

Créons la classe Eleve qui sera décrite dans le fichier Eleve_class.php:

Syntaxe
		class Eleve	{
			//description de la classe
		}
		  

Propriétés et méthodes

Les propriétés

Une propriété est une variable déclarée à l'intérieur d'une classe.

Une propriété peut être:

  • public, elle s'écrira $propriété
    Cette propiété est visible (en lecture et écriture) dans l'ensemble du proramme.
  • private, elle s'écrira $_propriété
    Cette propiété est visible (en lecture et écriture) uniquement au sein de la classe dans laquelle elle a été déclarée.
  • protected, elle s'écrira _$propriété
    Cette propiété est visible (en lecture et écriture) uniquement au sein de la classe dans laquelle elle a été déclarée et des classes enfants (voir héritage).

Ce qui précède ne sont que des conventions d'écriture, celles-ci sont partagées par la majorité des développeurs php.

Les méthodes

Une méthode est une fonction déclarée à l'intérieur d'une classe.
Il existe des méthodes particulières, les setters et les getters.


Une première classe

Commençons par un exemple très simple: une classe avec 1 propriété public.

  • on crée une classe avec le mot clé class
  • on crée une propriété, c'est une simple variable!, d'accessibilité public (voir plus loin)
  • on crée un objet (une instance) de cette classe avec le mot clé new
  • on affecte la propriété au moyen de l'opérateur ->

L'opérateur -> permet d'accéder à une propriété ou d'appeler une méthode de l'objet.

Démo
<?php
	class Eleve    {
	//déclaration de la propriété
		public $preno;
	}
	//On crée une instance de la classe eleve
	$elev1=new eleve();
	$elev1->preno="Jean-Michel";
	var_dump($elev1);
?>

Lorsqu'on affecte une valeur à la propriété d'un objet avec l'opérateur -> on utilise pas le $ de la propriété!

Une propriété d'un objet peut bien sûr être affectée au sein de l'objet, comme valeur par défaut par exemple.


Une deuxième classe

Une classe avec 2 propriétés public et 1 méthode.

  • on crée une classe avec le mot clé class
  • on crée deux propriétés, ce sont de simples variables!, d'accessibilité public (voir plus loin)
  • on crée une méthode dont le but est d'afficher le contenu des variables, d'accessibilité public (voir plus loin)
  • on crée un objet (une instance) de cette classe avec le mot clé new
  • on affecte les 2 propriétés au moyen de l'opérateur ->
  • on appelle la méthode affichage() au moyen de l'opérateur ->

Démo
<?php
	class Eleve    {
	//déclaration des propriétés
		public $nom;
		public $preno;
	//déclaration de la propriété affichage
		public function affichage(){
			echo $this->nom." ".$this->preno;
		}
	}
	//On crée une instance de la classe eleve
	$elev1=new eleve();
	//On affecte les valeurs aux proppriétés
	$elev1->nom="Vandeput";
	$elev1->preno="Jean-Michel";
	//On appelle la fonction d'affichage
	$elev1->affichage();
?>

Le fichier contenant la classe

Un fichier par classe sous la forme: Nomclasse.class.php.

On intègre le fichier contenant la description d'une classe avec la commande require_once().

Syntaxe
//Intégration du fichier Eleve.class.php
	require_once("Eleve.class.php");
		  

Initialisation des propriétés d'un objet

Au moment de la déclaration une propriété peut être affectée par:

  • un string
  • un integer
  • un double
  • un boolean
  • un array()
  • la valeur NULL

Au moment de la déclaration une propriété ne peut pas être affectée au moyen d'une fonction (autre que array() bien sûr) ou par une expression variables (par ex une expression arithmétique).