SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
$php->simplonBoulogne();
Introduction à la POO
Sommaire
• POO
• Création d’une classe et définir un objet
• Notions de propriétés et méthodes
• Héritage
• Challenge
POO
La programmation orienté objet est une tout autre manière de coder,
avant nous étions dans la programmation dis procédurale… Nous
exécutions des instructions les unes à la suite des autres.
Maintenant on travaille sur un environnement d’objets, on essaye
d’imaginer notre site comme étant un ensemble d’objets qui
interagisse entre eux.
Classes et objets
Une classe est un « template » définissant ce qu’il y a à l’intérieur
d’un objet.
Nous organisons dans notre classe nos constantes, functions etc…
Une fois que notre classe est définie nous allons créé notre premier
objet !
Vocabulaire
Attention, dans une classe, les fonctions sont appelées « Méthodes »
et les variables sont appelées « Propriétés »
Classe et objets
class Product { //Commence par une Majuscule
public $title; //Propriétés
function getTitle(){ //Méthodes
}
}
$p = new Product(); //Création d’un objet
Une classe
Créer un objet
$p = new Product();
On parle d’une instanciation d’une classe pour
créer un objet. (C’est beau…)
Appel d’une propriété
$p->titre;
On pointe vers la propriété (sans le ‘$’)
class Product {
public $title; //Propriétés
function getTitle(){ //Méthodes
}
}
$p = new Product(); //objet de la classe Product
$p->title(‘Harry Potter’);
echo $p->title;
Propriétés
Non recommandée…
Affectation
Visibilité des propriétés
• public : les propriétés peuvent être accessible depuis n’importe où
dans votre code
• protected : les propriétés peuvent être accessible seulement à
l’intérieur de la classe ET ses classes parentes et hérités
• private : les propriétés peuvent être accessible seulement à
l’intérieur de la classe.
Attention, si vous n’affectez aucune visibilité, par défaut ce sera
public
Pensez à le mettre malgré tout pour une meilleure lisibilité de votre
code notamment pour votre équipe
Visibilité des propriétés
class Personne {
public $FirstName = "Bill";
public $LastName = "Murphy";
private $Password = "Poppy";
public $Age = 29;
public $FavouriteColour = "Purple";
}
$bill = new Personne();
Propriétés Exemple
Appel d’une méthode
$p->getTitle();
On pointe vers une méthode
On n’oublie pas les parenthèses, sauf si
c’est pour appeler une propriété !
class Product {
public $title = ‘Harry Potter’;
function getTitle(){
return "Le nom du produit :" .$this->title;
}
}
$p = new Product();
$p->getTitle(); //Accès à la méthode
Méthodes
Création d’une
méthode
"$this" variable
Lorsque vous êtes à l’intérieur d’une méthode, PHP va
automatiquement affecter l’objet à la variable $this pour pouvoir
travailler avec les propriétés de la classe correspondante.
$this->title = $title; //Affecte le paramètre
$title à la propriété $title de la classe
Constructeur
Le constructeur est la fonction qui est appelée automatiquement par
la classe lorsque vous créez une nouvelle instance d'une classe à
l'aide de l'opérateur new.
$p = new Product("Le seigneur des anneaux");
Constructeur
class Product {
public $title = ‘Harry Potter’;
function __construct($title){
$this->title = $title;
}
function getTitle(){ … } //retourne le titre
}
$p = new Product("Le seigneur des anneaux");
$p->getTitle(); //Retourne quel titre ?
Héritage
L’héritage est une manière d’étendre une classe avec une nouvelle et
permet d’éviter la saisie de code répétitif.
Voiture Voiture électrique
Héritage
D.R.Y
Don’t Repeat Yourself
Héritage
class Voiture {
public $marque;
public $puissance;
function __construct($marque, $puissance){
$this->marque = $marque;
$this->puissance = $puissance;
}
function getMarque(){ … } //retourne la marque
}
$v = new Voiture("Renault","6CV");
$v->getMarque();
Héritage
class Electrique extends Voiture {
public $volt;
function __construct($marque, $puissance, $volt){
parent::__construct($marque, $puissance);
$this->volt = $volt;
}
function getVolt(){ … }
}
$ve = new Electrique("Renault","6CV","120V");
$ve->getMarque();
Challenge
Créer une base de donnée, puis une classe Connexion avec :
• un constructeur pour une connexion PDO à la base
• une méthode countTable qui prend une requête SQL en paramètre
et retourne le résultat
Ensuite dans un fichier .php, créez un nouvel objet en instanciant
Connexion et appelez la méthode en envoyant une requête sql avec
COUNT …
Some ressources
• http://www.hackingwithphp.com/
• https://secure.php.net/manual/fr/index.php
• https://openclassrooms.com/courses/programmez-en-
oriente-objet-en-php/introduction-a-la-poo

Contenu connexe

Similaire à Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf

Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1Yassine Badri
 
Classes et Objets.pdf
Classes et Objets.pdfClasses et Objets.pdf
Classes et Objets.pdfAabidiHafid
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partiekadzaki
 
Csharp2 : classes et objets
Csharp2 : classes et objetsCsharp2 : classes et objets
Csharp2 : classes et objetsAbdoulaye Dieng
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objetAmir Souissi
 
DrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - ThemingDrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - ThemingRomain Jarraud
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPkemenaran
 
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...Hamza SAID
 
JAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAJAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAAymen Bedwivski
 
Java uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaJava uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaAmel Morchdi
 
Langage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté ObjetLangage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté ObjetMohammed Jaafar
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 

Similaire à Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf (20)

Les Classe en Java
Les Classe en JavaLes Classe en Java
Les Classe en Java
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1
 
Classes et Objets.pdf
Classes et Objets.pdfClasses et Objets.pdf
Classes et Objets.pdf
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partie
 
Csharp2 : classes et objets
Csharp2 : classes et objetsCsharp2 : classes et objets
Csharp2 : classes et objets
 
Playing With PHP 5.3
Playing With PHP 5.3Playing With PHP 5.3
Playing With PHP 5.3
 
Theme 10
Theme 10Theme 10
Theme 10
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objet
 
DrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - ThemingDrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - Theming
 
Polymorphisme
PolymorphismePolymorphisme
Polymorphisme
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
 
Ce bon vieux propel
Ce bon vieux propelCe bon vieux propel
Ce bon vieux propel
 
Cours de JAVA de base
Cours de JAVA  de baseCours de JAVA  de base
Cours de JAVA de base
 
JAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAJAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVA
 
Java uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaJava uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 java
 
Langage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté ObjetLangage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté Objet
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
POO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdfPOO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdf
 

Plus de RihabBENLAMINE

presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfRihabBENLAMINE
 
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfCM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfRihabBENLAMINE
 
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdfRihabBENLAMINE
 
coursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxcoursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxRihabBENLAMINE
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfRihabBENLAMINE
 
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfVirtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfRihabBENLAMINE
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdfRihabBENLAMINE
 
Interace Utilisateur.pdf
Interace Utilisateur.pdfInterace Utilisateur.pdf
Interace Utilisateur.pdfRihabBENLAMINE
 
Bases de données sous Android.pdf
Bases de données sous Android.pdfBases de données sous Android.pdf
Bases de données sous Android.pdfRihabBENLAMINE
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdfRihabBENLAMINE
 
coursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfcoursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfRihabBENLAMINE
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdfRihabBENLAMINE
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfRihabBENLAMINE
 
016834638650_suitechap1.pptx
016834638650_suitechap1.pptx016834638650_suitechap1.pptx
016834638650_suitechap1.pptxRihabBENLAMINE
 
Chapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfChapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfRihabBENLAMINE
 
p01b_portelogique_boole.pdf
p01b_portelogique_boole.pdfp01b_portelogique_boole.pdf
p01b_portelogique_boole.pdfRihabBENLAMINE
 

Plus de RihabBENLAMINE (20)

presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdf
 
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfCM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
 
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
 
coursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxcoursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptx
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
 
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfVirtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf
 
Interace Utilisateur.pdf
Interace Utilisateur.pdfInterace Utilisateur.pdf
Interace Utilisateur.pdf
 
Firebase.pdf
Firebase.pdfFirebase.pdf
Firebase.pdf
 
Bases de données sous Android.pdf
Bases de données sous Android.pdfBases de données sous Android.pdf
Bases de données sous Android.pdf
 
Les Activités.pdf
Les Activités.pdfLes Activités.pdf
Les Activités.pdf
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdf
 
coursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfcoursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdf
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdf
 
016834638650_suitechap1.pptx
016834638650_suitechap1.pptx016834638650_suitechap1.pptx
016834638650_suitechap1.pptx
 
PHP_intro.pdf
PHP_intro.pdfPHP_intro.pdf
PHP_intro.pdf
 
Chapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfChapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdf
 
chapitre-2.pptx.pdf
chapitre-2.pptx.pdfchapitre-2.pptx.pdf
chapitre-2.pptx.pdf
 
p01b_portelogique_boole.pdf
p01b_portelogique_boole.pdfp01b_portelogique_boole.pdf
p01b_portelogique_boole.pdf
 

Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf

  • 2. Sommaire • POO • Création d’une classe et définir un objet • Notions de propriétés et méthodes • Héritage • Challenge
  • 3. POO La programmation orienté objet est une tout autre manière de coder, avant nous étions dans la programmation dis procédurale… Nous exécutions des instructions les unes à la suite des autres. Maintenant on travaille sur un environnement d’objets, on essaye d’imaginer notre site comme étant un ensemble d’objets qui interagisse entre eux.
  • 4. Classes et objets Une classe est un « template » définissant ce qu’il y a à l’intérieur d’un objet. Nous organisons dans notre classe nos constantes, functions etc… Une fois que notre classe est définie nous allons créé notre premier objet !
  • 5. Vocabulaire Attention, dans une classe, les fonctions sont appelées « Méthodes » et les variables sont appelées « Propriétés »
  • 6. Classe et objets class Product { //Commence par une Majuscule public $title; //Propriétés function getTitle(){ //Méthodes } } $p = new Product(); //Création d’un objet Une classe
  • 7. Créer un objet $p = new Product(); On parle d’une instanciation d’une classe pour créer un objet. (C’est beau…)
  • 8. Appel d’une propriété $p->titre; On pointe vers la propriété (sans le ‘$’)
  • 9. class Product { public $title; //Propriétés function getTitle(){ //Méthodes } } $p = new Product(); //objet de la classe Product $p->title(‘Harry Potter’); echo $p->title; Propriétés Non recommandée… Affectation
  • 10. Visibilité des propriétés • public : les propriétés peuvent être accessible depuis n’importe où dans votre code • protected : les propriétés peuvent être accessible seulement à l’intérieur de la classe ET ses classes parentes et hérités • private : les propriétés peuvent être accessible seulement à l’intérieur de la classe.
  • 11. Attention, si vous n’affectez aucune visibilité, par défaut ce sera public Pensez à le mettre malgré tout pour une meilleure lisibilité de votre code notamment pour votre équipe Visibilité des propriétés
  • 12. class Personne { public $FirstName = "Bill"; public $LastName = "Murphy"; private $Password = "Poppy"; public $Age = 29; public $FavouriteColour = "Purple"; } $bill = new Personne(); Propriétés Exemple
  • 13. Appel d’une méthode $p->getTitle(); On pointe vers une méthode On n’oublie pas les parenthèses, sauf si c’est pour appeler une propriété !
  • 14. class Product { public $title = ‘Harry Potter’; function getTitle(){ return "Le nom du produit :" .$this->title; } } $p = new Product(); $p->getTitle(); //Accès à la méthode Méthodes Création d’une méthode
  • 15. "$this" variable Lorsque vous êtes à l’intérieur d’une méthode, PHP va automatiquement affecter l’objet à la variable $this pour pouvoir travailler avec les propriétés de la classe correspondante. $this->title = $title; //Affecte le paramètre $title à la propriété $title de la classe
  • 16. Constructeur Le constructeur est la fonction qui est appelée automatiquement par la classe lorsque vous créez une nouvelle instance d'une classe à l'aide de l'opérateur new. $p = new Product("Le seigneur des anneaux");
  • 17. Constructeur class Product { public $title = ‘Harry Potter’; function __construct($title){ $this->title = $title; } function getTitle(){ … } //retourne le titre } $p = new Product("Le seigneur des anneaux"); $p->getTitle(); //Retourne quel titre ?
  • 18. Héritage L’héritage est une manière d’étendre une classe avec une nouvelle et permet d’éviter la saisie de code répétitif. Voiture Voiture électrique
  • 20. Héritage class Voiture { public $marque; public $puissance; function __construct($marque, $puissance){ $this->marque = $marque; $this->puissance = $puissance; } function getMarque(){ … } //retourne la marque } $v = new Voiture("Renault","6CV"); $v->getMarque();
  • 21. Héritage class Electrique extends Voiture { public $volt; function __construct($marque, $puissance, $volt){ parent::__construct($marque, $puissance); $this->volt = $volt; } function getVolt(){ … } } $ve = new Electrique("Renault","6CV","120V"); $ve->getMarque();
  • 22. Challenge Créer une base de donnée, puis une classe Connexion avec : • un constructeur pour une connexion PDO à la base • une méthode countTable qui prend une requête SQL en paramètre et retourne le résultat Ensuite dans un fichier .php, créez un nouvel objet en instanciant Connexion et appelez la méthode en envoyant une requête sql avec COUNT …
  • 23. Some ressources • http://www.hackingwithphp.com/ • https://secure.php.net/manual/fr/index.php • https://openclassrooms.com/courses/programmez-en- oriente-objet-en-php/introduction-a-la-poo