Apprendre la Programmation orientée objet en PHP
Un tutoriel de Quentin Busuttil

Le , par Buzut

20PARTAGES

12  0 
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.

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Jarodd
Membre expérimenté https://www.developpez.com
Le 15/02/2018 à 18:37
Génial ! Merci pour le partage.
Un tel pense-bêteavec toutes les infos au même endroit est bien pratique
Avatar de domi65
Membre confirmé https://www.developpez.com
Le 18/02/2018 à 10:48
Très bonne synthèse, merci !
Avatar de Yadreï
Membre à l'essai https://www.developpez.com
Le 20/02/2018 à 13:53
Hyper pratique !

Merci !
Avatar de vttman
Membre expérimenté https://www.developpez.com
Le 24/02/2018 à 8:30
Impeccable, c'est tout ce que je cherchais
en condensé
Avatar de Jarodd
Membre expérimenté https://www.developpez.com
Le 21/04/2018 à 10:51
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
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
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.
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web