Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez / Téléchargez Sources et Outils PHP Discussion :

Synthèse de la Programmation orientée objet en PHP


Sujet :

Contribuez / Téléchargez Sources et Outils PHP

  1. #1
    Membre émérite
    Synthèse de la Programmation orientée objet en PHP
    Chers membres du club,

    J'ai le plaisir de vous présenter ce tutoriel  :


    Cet article était jusque là en privé, juste pour mon usage personnel, et puis je me suis dit qu'il serait bête de ne pas en faire profiter les autres (c'est le but d'un blog non ?). Voici donc quelques rappels sur la Programmation orientée objet (POO) en PHP. Bien que j'explique un peu les différentes notions, cet article est une cheatsheet sur la POO. Par conséquent, il n'est pas destiné à ceux qui n'en ont jamais fait (ils seront totalement perdus). En revanche, ceux qui connaissent déjà, mais qui, comme moi, ont quelques trous de mémoire, vous pouvez bookmarquer cet article !
    Bonne lecture

    Retrouvez les meilleurs cours et tutoriels pour apprendre PHP.

  2. #2
    Membre expérimenté
    Génial ! Merci pour le partage.
    Un tel pense-bêteavec toutes les infos au même endroit est bien pratique

  3. #3
    Membre confirmé
    Très bonne synthèse, merci !

  4. #4
    Membre à l'essai
    Hyper pratique !

    Merci !

  5. #5
    Membre chevronné
    Impeccable, c'est tout ce que je cherchais
    en condensé
    Il ne pleut jamais en Moselle !

  6. #6
    Membre expérimenté
    Bonjour,

    Dans la partie I-F, quel est l'intérêt d'appeler setDb() dans le constructeur ?

    Pourquoi ne pas faire directement :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public function __construct($db) {
      $this->_db = $db;
    }


    Ou bien si on veut avoir des accesseurs pour tous les attributs :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class MonObjetManager {
      public function __construct() {
        // ... autre chose
     }
      public function setDb(PDO $db) {
        $this->_db = $db;
      }
    }
     
    $manager = new MonObjetManager();
    $manager->setDb($db);


    Ce qui est proposé n'est pas faux, mais j'ai l'impression que c'est une solution "bâtarde" entre les deux solutions, et je ne vois pas son intérêt. Soit le constructeur initialise directement la db (et le setDb() ne sert à rien), soit on passe setDb() en private/protected et c'est le constructeur qui l'appelle, mais là si tout est public c'est appeler 2 méthodes pour faire 1 action, donc 1 de trop.