Chapitre 5 : PHP Objet
- Création de classe
- $this Référence à l'objet lui-même, celui dans lequel on se trouve
- $this→member : accès aux membres dans la classe
- Respect de l'encapsulation (private sur variables, public sur getters/setters)
<?php
namespace models;
class User{
private $login="";
private $password="";
public function getId() {
return $this->id;
}
public function setId($id) {
$this->id=$id;
return $this;
}
public function getLogin() {
return $this->login;
}
public function setLogin($login) {
$this->login=$login;
return $this;
}
public function getPassword() {
return $this->password;
}
}
- Instanciation d'objets
- ne pas oublier d'inclure le fichier de définition de la classe (usage de use).
- L'opérateur new appelle le constructeur de la classe (constructeur implicite dans ce cas)
use models\User; $aUser=new User();
- Constructeur explicite
<?php
namespace use models;
class User{
private $login="";
private $password="";
public function __construct($login="",$password=""){
}
...
Pas de surcharge, mais paramètres optionnels
<?php
use models\User;
$user1=new User();
$user2=new User("fred");
$user3=new User("fred","azerT1yuiop");
- Appels de méthodes
Opérateur →
<?php
use models\User;
$user=new User("Fred");
echo $user->getLogin();
- Héritage
Mot clé extends
<?php
class Admin extends User{
...
}
Référence à la classe parent
parent::
<?php
class Admin extends User{
public function __construct(){
parent::__construct();
...
}
}
- Méthodes statiques
<?php
class Utilitaire{
public static function show($user){
...
}
}
Appel de méthode statique dans la classe
<?php
class Utilitaire{
public function test($user){
...self::show($user);
}
}
Appel de méthode statique en dehors de la classe
<?php
use models\User;
$aUser=new User("fred");
Utilitaire::show($user);