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);