web:php:chap5

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
web:php:chap5 [2023/11/08 15:23] – supprimée - modification externe (Unknown date) 127.0.0.1web:php:chap5 [2023/11/08 15:23] (Version actuelle) – ↷ Page déplacée de php:chap5 à web:php:chap5 jcheron
Ligne 1: Ligne 1:
 +====== 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) 
 +
 +<sxh php;title:user.php>
 +<?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;
 + }
 +}
 +</sxh>
 +
 +===== - 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)
 +<sxh php;title:userTest.php>
 +use models\User;
 +
 + $aUser=new User();
 +</sxh>
 +
 +
 +===== - Constructeur explicite =====
 +
 +<sxh php;title:user.php>
 +<?php
 +namespace use models;
 +
 +class User{
 +
 + private $login="";
 + private $password="";
 + public function __construct($login="",$password=""){
 + }
 + ...
 +</sxh>
 +
 +Pas de surcharge, mais paramètres optionnels
 +
 +
 +<sxh php;title:testUser.php>
 +<?php
 +use models\User;
 +
 + $user1=new User();
 + $user2=new User("fred");
 + $user3=new User("fred","azerT1yuiop");
 +</sxh>
 +
 +===== - Appels de méthodes =====
 +
 +Opérateur ->
 +
 +<sxh php;title:testUser.php>
 +<?php
 +use models\User;
 +
 + $user=new User("Fred");
 + echo $user->getLogin();
 +</sxh>
 +
 +
 +===== - Héritage =====
 +
 +Mot clé **extends**
 +
 +<sxh php;title:admin.php>
 +<?php
 +class Admin extends User{
 + 
 +    ...
 +}
 +</sxh>
 +
 +==== Référence à la classe parent ====
 +
 +**parent::**
 +
 +<sxh php;title:admin.php>
 +<?php
 +class Admin extends User{
 + 
 +    public function __construct(){
 +        parent::__construct();
 +        ...
 +    } 
 +}
 +</sxh>
 +
 +===== - Méthodes statiques =====
 +
 +<sxh php;title:utilitaire.php>
 +<?php
 +class Utilitaire{
 + 
 +    public static function show($user){
 +    ...
 +    }
 +}
 +</sxh>
 +
 +Appel de méthode statique dans la classe
 +
 +<sxh php;title:utilitaire.php>
 +<?php
 +class Utilitaire{
 + 
 +    public function test($user){
 +    ...self::show($user);
 +    }
 +}
 +</sxh>
 +
 +
 +Appel de méthode statique en dehors de la classe
 +
 +<sxh php;title:utilitaireTest.php>
 +<?php
 +use models\User;
 +
 +$aUser=new User("fred");
 +Utilitaire::show($user);
 +
 +</sxh>