Cours POO Part1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 21

Web Dynamique avec PHP

Programmation orientée objet (POO)

1 Rappels : Web, PHP, SQL et MySQL

2 Programmation orientée objet (POO)


Qu’est-ce que la POO ?
Objet
Classe
Constructeur et Destructeur
Visibilité (Modificateurs d’accès)
Méthodes et Propriétés statiques, constantes
Héritage
Autoloading
Espaces de noms (namespaces)

En cas de problèmes : [email protected] ENS - Tétouan 4/47


Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Qu’est-ce que la POO ?

POO
Comparaison
La méthode que vous employez pour développer un
site web
VS
La méthode POO

Programmation procédurale Programmation orientée objet


En cas de problèmes : [email protected] ENS - Tétouan 5/47
Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Objet

C’est quoi un objet ?

Objet
Variables :
entier
réel
chaine de caractères
tableau
....
⇒ Ce type de variables est limité et ne suffit pas

En cas de problèmes : [email protected] ENS - Tétouan 6/47


Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Objet

C’est quoi un objet ?

Pour ajouter 3 ans, 2 mois et supprimer 1 jour à la date d’aujour-


d’hui et puis l’afficher :

Méthode1 : Programmation itérative

1 $date = ' 2022 -12 -13 ';

$date = date ( 'Y -m - d ' , strtotime ( $date . '+3 years +2 months


-1 days ') ) ;

echo date ( 'Y / m / d ' , strtotime ( $date ) ) ;

En cas de problèmes : [email protected] ENS - Tétouan 7/47


Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Objet

C’est quoi un objet ?

Pour ajouter 3 ans, 2 mois et supprimer 1 jour à la date d’aujour-


d’hui et puis l’afficher :

Méthode1 : Programmation itérative

$date = ' 2022 -12 -13 ';

$date = date ( 'Y -m - d ' , strtotime ( $date . '+3 years +2 months


-1 days ') ) ;

5 echo date ( 'Y / m / d ' , strtotime ( $date ) ) ;

En cas de problèmes : [email protected] ENS - Tétouan 7/47


Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Objet

C’est quoi un objet ?

Méthode2 : Programmation avec des fonctions

$date = ' 2022 -12 -13 ';


$date = ajouterAns ( $date , 3) ;
$date = ajouterMois ( $date , 2) ;
$date = ajouterJours ( $date , -1) ;
5 afficherDate ( 'Y / m / d ' , $date ) ;

En cas de problèmes : [email protected] ENS - Tétouan 8/47


Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Objet

C’est quoi un objet ?

Méthode2 : Programmation avec des fonctions

$date = ' 2022 -12 -13 ';


$date = ajouterAns ( $date , 3) ;
$date = ajouterMois ( $date , 2) ;
$date = ajouterJours ( $date , -1) ;
5 afficherDate ( 'Y / m / d ' , $date ) ;

En cas de problèmes : [email protected] ENS - Tétouan 8/47


Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Objet

C’est quoi un objet ?

Méthode3 : Programmation avec des objets

$date = new uneDate ( ' 2022 -12 -13 ') ;

$date - > ajouterAns (3) ) ;


$date - > ajouterMois (2) ) ;
5 $date - > ajouterJours ( -1) ) ;

$date - > afficherDate ( 'Y / m / d ') ;

En cas de problèmes : [email protected] ENS - Tétouan 9/47


Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Objet

C’est quoi un objet ?

Méthode3 : Programmation avec des objets

$date = new uneDate ( ' 2022 -12 -13 ') ;

3 $date - > ajouterAns (3) ) ;


$date - > ajouterMois (2) ) ;
$date - > ajouterJours ( -1) ) ;

$date - > afficherDate ( 'Y / m / d ') ;

En cas de problèmes : [email protected] ENS - Tétouan 9/47


Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Classe

C’est quoi une classe ?

Classe vs Objet
Une classe Fruit, les objets de cette classe : Pomme, Banane,
Ananas, ...
Une classe Voiture, les objets de cette classe : Renault, Mer-
cedes, Peugeot, ...

En cas de problèmes : [email protected] ENS - Tétouan 10/47


Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Classe

C’est quoi une classe ?


Classe vs Objet

$date1 = new uneDate ( ' 2021/10/21 ') ;


$date2 = new uneDate () ;
3 $tab1 = array ( ' Dut ', ' Lp ', ' Master ') ;
$tab2 = array () ;

Instanciation
Les classes sont des fabriques d’objets : on construit d’abord l’usine
avant de produire des objets (instances)
On instancie un objet (c-à-d. qu’on le produit à partir de l’usine (classe))
en appelant le nom de sa classe comme s’il s’agissait d’une fonction
uneDate : est une classe
new uneDate(), $date1 et $date2 : sont des objets ou bien des
instances
En cas de problèmes : [email protected] ENS - Tétouan 11/47
Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Classe

C’est quoi une classe ?


Classe vs Objet

1 $date1 = new uneDate ( ' 2021/10/21 ') ;


$date2 = new uneDate () ;
$tab1 = array ( ' Dut ', ' Lp ', ' Master ') ;
$tab2 = array () ;

Instanciation
Les classes sont des fabriques d’objets : on construit d’abord l’usine
avant de produire des objets (instances)
On instancie un objet (c-à-d. qu’on le produit à partir de l’usine (classe))
en appelant le nom de sa classe comme s’il s’agissait d’une fonction
uneDate : est une classe
new uneDate(), $date1 et $date2 : sont des objets ou bien des
instances
En cas de problèmes : [email protected] ENS - Tétouan 11/47
Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Classe

C’est quoi une classe ?

Définition
Exemple :
Classe : uneDate = Attributs + Méthodes
1 Attributs : Ans, Mois, jours, ...
2 Méthodes : definirAns(), ModifierJours(), AjouterSemaine(), ...

uneDate
Ans
Mois
...
definirAns()
...

3 Classe : Ensemble incluant des variables (attributs ou bien propriétés)


et des fonctions (méthodes)

En cas de problèmes : [email protected] ENS - Tétouan 12/47


Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Classe

Ma première classe

Syntaxe

1 <? php
class nomClasse {
// ...
}
?>

En cas de problèmes : [email protected] ENS - Tétouan 13/47


Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Classe

Ma première classe : Voiture


Une classe Voiture composée de 3 propriétés ($marque, $modele et $car-
burant) et de 2 méthodes definirMarque() et afficherMarque()
Le mot clé $this fait référence à l’objet actuel
<? php
class Voiture {
// 3 propri é t é s
4 public $marque ;
public $modele ;
public $carburant ;
// 2 m é thodes
function definirMarque ( $marque ){
9 $this - > marque = $marque ;
}
function afficherMarque () {
return $this - > marque ;
}
14 }
En cas de problèmes : [email protected] ENS - Tétouan 14/47
?>
Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Classe

Ma première classe : Voiture


Une classe Voiture composée de 3 propriétés ($marque, $modele et $car-
burant) et de 2 méthodes definirMarque() et afficherMarque()
Le mot clé $this fait référence à l’objet actuel
<? php
class Voiture {
// 3 propri é t é s
public $marque ;
5 public $modele ;
public $carburant ;
// 2 m é thodes
function definirMarque ( $marque ){
$this - > marque = $marque ;
10 }
function afficherMarque () {
return $this - > marque ;
}
}
En cas de problèmes : [email protected] ENS - Tétouan 14/47
15 ? >
Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Classe

Définir les objets


Plusieurs objets peuvent être créés à partir d’une classe
Chaque objet a toutes les propriétés et méthodes définies dans la classe,
mais les valeurs des propriétés sont différentes
Les objets d’une classe sont créés à l’aide du mot clé new

<? php
class Voiture {
...
}
5 $v1 = new Voiture () ; // v1 est un objet ( instance ) de la
classe Voiture
$v2 = new Voiture () ;
$v1 - > definirMarque ( ' mercedes ') ;
$v2 - > definirMarque ( ' renault ') ;
echo ' voiture1 = ' ,$v1 - > afficherMarque () , '<br > ';
10 echo ' voiture2 = ' ,$v2 - > afficherMarque () ;
?>
En cas de problèmes : [email protected] ENS - Tétouan 15/47
Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Classe

Définir les objets


Plusieurs objets peuvent être créés à partir d’une classe
Chaque objet a toutes les propriétés et méthodes définies dans la classe,
mais les valeurs des propriétés sont différentes
Les objets d’une classe sont créés à l’aide du mot clé new

<? php
class Voiture {
...
4 }
$v1 = new Voiture () ; // v1 est un objet ( instance ) de la
classe Voiture
$v2 = new Voiture () ;
$v1 - > definirMarque ( ' mercedes ') ;
$v2 - > definirMarque ( ' renault ') ;
9 echo ' voiture1 = ' ,$v1 - > afficherMarque () , '<br > ';
echo ' voiture2 = ' ,$v2 - > afficherMarque () ;
?>
En cas de problèmes : [email protected] ENS - Tétouan 15/47
Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Classe

Ma première classe

Petite question
Ajouter des autres méthodes à la classe Voiture pour définir et
afficher les propriétés $modele et $carburant.

En cas de problèmes : [email protected] ENS - Tétouan 16/47


Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Classe

Ma première classe : Changement les valeurs des propriétés

1 Dans la classe en utilisant une méthode et le mot clé $this :

class Voiture {
...
function definirMarque ( $marque ){
4 $this - > marque = $marque ;
}
...
}

2 En dehors de la classe, en modifiant la valeur de la propriété :

class Voiture {
...
3 }
$v1 = new Voiture () ;
$v1 - > marque = ' mercedes ';

En cas de problèmes : [email protected] ENS - Tétouan 17/47


Web Dynamique avec PHP
Web Dynamique avec PHP
Programmation orientée objet (POO)
Classe

Ma première classe
Exercice
1 Créer une classe uneDate composée de
3 propriétés (Ans, Mois et Jours) et des
méthodes pour : définir une date, afficher
une date, afficher la date du jour précé-
dent, de la semaine prochaine, ...
2 Si par exemple la date suivante "12-12-
2022" a été déclarée comme objet, créer
une calendrier.
3 Ajouter des boutons : jour suivant, jour
précédent, semaine suivante et semaine
précédente
4 Après avoir cliqué sur l’un des boutons
précédents, afficher un message si la date
va être dans un autre mois que celui de
octobre
En cas de problèmes : [email protected] ENS - Tétouan 18/47
Web Dynamique avec PHP

Vous aimerez peut-être aussi