Vous êtes sur la page 1sur 23

c La POO (programmation orientée objet) est une forme particulière de

programmation destinée à faciliter la maintenance et la réutilisation /


adaptation de vos scripts PHP.
c Consiste à représenter des objets (du monde réel ou non) sous une forme
d'entités informatiques.
c On représente généralement un objet global par ce que l'on appelle une
@ . Une classe va regrouper un ensemble de fonctions et de propriétés
pouvant agir sur l'objet (instance d¶une classe).
x  
On peut modéliser une voiture du monde réel par une classe "Voiture" qui
aura comme propriétés le nombre de roues, le nombre de portes, etc ...
  
3   
               
    
x 

Voiture

Niveau_carburant
Nombres_porte
Nombre_roues

Ajouter()
Modifier()
Modif_niveau_carburant

x 
          
         


                  


        


   
    
     
˜ 

m php
class Voiture
{
* Déclaration des attributs
private $niveau_carburant;
private $nombre_portes;
private $nombre_roues;

* constructeur exécuté lorsque vous "créez" votre objet qui doit initialiser
les attributs de la classe.

public function __construct()


{
$this->niveau_carburant = 50;
$this->nombre_portes = 3;
$this->nombre_roues = 4;
}
* Première méthode accessible par tous et modifiant le niveau de carburant

public function modifier_carburant($niveau)


{
$this->niveau_carburant = $niveau;
}

* Seconde méthode accessible à tous et modifiant le nombre de portes */

public function modifier_nb_portes( $nb_portes)


{
$this->nombre_portes = $nb_portes;
}
}
>
è    

c ! 
     "   #
  

        $  %    


c            
c &        "       '
    


x 
m


() * + , -.


(/* +., -

.
˜     

c  
           0


  
c         

         #    


1  "             
  
        
   
        
c        

        


    


 22    
public function __construct($nb_carburant, $nb_portes, $nb_roues = 4)
{
$this->niveau_carburant = $nb_carburant;
$this->nombre_portes = $nb_portes;
$this->nombre_roues = $nb_roues;
}

* Destructeur, appelé quand l'objet est détruit

public function __destruct()


{
echo 'L\'objet a été détruit';
}
}
>
  p p    
 

   
        4 
o p  p    
   
  
 
o p                   
o p               p    
    , "  
 #            

         "  



    





 . . . .  .  .". . .. ..w  


º     

m php

$voiture = new Voiture(50, 3);

echo $voiture->nombre_portes;

echo $voiture->nombre_roues;

>
Notez que l'on ne met pas de signe $ pour accéder ou définir des
valeurs aux attributs d'une classe. Le mot-clé $this est un peu
spécial et il désigne la classe courante.



c  .  . . . ..


 . . . .
  .
. . .  . .

 . ...
 .
c x  . ..
 ". .
 #.. ..
   . . .  .

 . ...
 ".
c3 . ..   .. . .  .

 . ...
   . .  . .

 .

.
c. . .
 . . . .  .. .  . . .. 4
.  
x p

m 
cl ss ic l
{

cl r ti s ttri ts

r t ct rix;

lic fcti  c strct( rixv icl )


{
tis- rix rixv icl ;
}

lic fcti   ifi rrix( v rix)


{
tis- rix v rix;
}
}




† . .
 #..   ". ...  ..., 
 .. .. . .   . . .  . .

 ..

† 5". ... .  .


.. . . . . . .  .
.  . .


† 6 . .  .  .. .. . . . .  . .


%.". . ...  .
.  ..
 .

  .

† ,.   . .., . .  ..



 . ..
.,  



m 
cl ss itr xt  s icl
{
/
cl r ti s ttri s
/
riv cli is i;

/
Cs rc r l clss i r
/

lic fc i cs rc ( rixv icl , cli)


{
r  cs rc ( rixv icl ); //O  ll l cs rc r
l clss  icl  li friss l rix
is-
cli is i  cli;
}
}


 .º  

Voici ce que ça donne au niveau de l'instanciation 

m php

$voiture = new Voiture(17000, TRUE);

$voiture->modifier_prix(15000); // n peut modifier le prix de la voiture

>
â   

† Ñ. . .   . ."..  . .

. . . . .


. .  .. .  

x

5  .2  

-
,)* +. -
7 . .  ... .  .  .. ..   ..
 . .  . .. . .     ".    ".
  .

 8.  .. 



        

†  . . . .. .  . . ..  


).Ñ.  . ... .  
/.9  . . % .   ".  ".    ".

 
:.x .. % 
x7! xÑ.9x.;<!756=.9x.!ÑÑxÑ

D |n commence à définir notre chaine de connexion


à la base de données
D Dans un fichier config.php
m
define('db_host','localhost');
define('db_user','ajaxuser');
define('db_password','practical');
define('db_database','ajax');
>
x.>5 5x;.x;;6;2 !=9x;
D m
D //définit la méthode personnalisée de prise en compte d'erreur
D set_error_handler('error_handler',E_ALL);

D //fonction de prise en copmpte d'erreurs


D function error_handler($errNo,$errStr,$errFile,$errLine)
D {
D if(ob_get_length()) ob_clean();

D $error_message='ERRN|.$errno.chr(10).
D 'TEXT'.$errStr.chr(10).
D 'L| ATI|N'.$errFile.
D ',line'.$errLine;
D echo $error_message;
D //empêche le traitement de tout autre script php
D exit;
D } >
;<!756=.9x.!ÑÑx.x=.
D Soit une table user qui contient la liste des utilisateurs.
D Un utilisateur est caractérisé par 
> Son identificateur
> Son nom
† Pour cela on doit créer une classe user en PHP
User
User_id
User_name

insertuser()
supprimer_user()
getuser()
modifuser()
existuser()
;<!756=.9x.!ÑÑxÑ.x=.

class users{
/* attributs de la classe user

public $user_id;
public $user_name;
6=Ñ7;37x3;.9x.!ÑÑx.3Ñx;
function __construct()
{
$num=func_num_args();

switch($num)
{
case 1
//un seul paramètre passé
$this->user_id=func_get_arg(0);
break;
case 2
//deux paramètres passés
$this->user_id=func_get_arg(0);
$this->user_name=func_get_arg(1);
break;
default
}}
-<7 69x.9$5=Ñx;756=.9!=Ñ.!.
?!Ñx
function insertuser()
{
require_once('config.php');
require_once('error_handler.php');
$mysqli=new mysqli(db_host,db_user,db_password,db_database);

$req='insert into users(user_id,user_name)


values('.$this->user_id.','."'".$this->user_name."'".')';
$mysqli->query($req);
$mysqli->close();
}
! x.9x.!.-<7 69x.9x.!.
!ÑÑx
m
require_once('users.php');

$us=new users($_P|ST['user_id'],$_P|ST['user_nom']);

$us->insertuser();

>