POO - Se compliquer la vie pour pas grand chose ?

MrReskill

MrReskill Le 12 fĂ©vrier 2017 Ă  17:07 (ÉditĂ© le 25 janvier 2019 Ă  17:53)

Yop 😄,
sa fait presque une semaine que je regarde des vidĂ©os pour tenter de comprendre la Programation OrientĂ©e objet hors, aprĂšs une vingtaine de vidĂ©os vue, les tutoriels d'OCR lue et malgrĂ© mes connaisances bonnes en procĂ©dural je n'arrive pas a accrochĂ© et comprendre la POO je comprend pas le principe des constructor et ce que l'ont peut faire avec si des personnes sont prĂȘtes a me dĂ©crire, ou me donner de bon tutoriel :P.

I want for you an good day
TheFlameflo

TheFlameflo Le 12 février 2017 à 18:02

Salut !

Comme tu l'as dit, POO complique les choses au début.
Quand tu auras créé tes classes principales pour ton projet, tout ira beacoup plus vite et sera beaucoup plus lisible.
Tu seras amenĂ© Ă  crĂ©er des classes pour gĂ©rer les requĂȘtes SQL, les tables, la connexion, dĂ©connexion, etc.
Ces classes, une fois créées, tu pourras les réutiliser dans tous tes projets (si tu l'as bien programmé).

Je te conseille de voir ton projet comme une machine :
La machine a plusieurs mécanisme, un mécanisme est une classe.
Ce mécanisme fonctionne en sous-mécanismes, mais tu veux pas les voir, de toute façon ce serait inutile. Les sous-mécanisme sont tes méthodes.
Une fois ton mĂ©canisme crĂ©Ă©, si tu en as besoin dans une autre partie de ta machine, tu le recopies et tu le mets Ă  un autre endroit. C'est un avantage de la POO, ne pas se casser la tĂȘte en refaisant plusieurs fois la mĂȘme chose.
Tout est clair sur ta machine et tu peux repérer tes mécanismes facilement.

En gros, tes mĂ©thodes cachent ton code, ce que tu n'as pas besoin de voir. Alors Ă  la place d'avoir des requĂȘtes SQL Ă©parpillĂ©es, du code un peu partout, ça sera clair :
$articles = $table->recupererArticles();
foreach()
{
   //boucle pour afficher les articles
}
Dans la mĂ©thode recupererArticles, tu as la requĂȘte et les traitements qu'il faut et tu retournes un tableau de tous tes articles, mais tu ne le vois pas.

Perso, je trouve que c'est mieux.



Je te conseille fortement de voir la série de Grafikart sur la POO en PHP au moins jusqu'à la fin du TP sur le blog.

C'est grĂące Ă  ces tutos que j'ai compris le principe de la POO et comment l'utiliser efficacement.

J'espÚre t'avoir aidé !
MrReskill

MrReskill Le 12 février 2017 à 19:06

Je vais voir mais c'est surtout la partie du constructeur je n'arrive réelement pas a comprendre.
Sinon merci de ta rĂ©ponse 😀
TheFlameflo

TheFlameflo Le 12 février 2017 à 19:14

Qu'est-ce que tu ne comprends pas exactement ? 😀

Pour résumer,  tout ce qu'il faut savoir, c'est qu'il est appelé lorsque tu crées ton objet, tu ne peux pas l'utiliser aprÚs.

Tu peux y mettre ce que tu veux comme code ou lui faire passer des paramÚtres, c'est comme une méthode
Profil introuvable

Profil introuvable Le 14 fĂ©vrier 2017 Ă  10:52 (ÉditĂ© le 14 fĂ©vrier 2017 Ă  12:36)

Salut,
D'abord +1 @TheFlameflo.
Ensuite, voici un cours d'openclassrooms sur la POO de php. Je voudrais aussi préciser que les classes aident beaucoup lorsque tu travail en groupe.

Pour le constructeur, voilĂ  une brĂšve explication :
Le constructeur   sert Ă  prĂ©parer l'utilisation d'un objet. Il est appelĂ© dĂ©s la crĂ©ation de ton objet mais ne pourra pas ĂȘtre appelĂ© ensuite. Ainsi, les paramĂštres passĂ© dans cette fonction devrons ĂȘtre notifiĂ©s comme ceci :
public function __construct($id) {
   # préparation de l'objet. Exemple :
   $this->id_membre = (int) $id;
}
$monObjet = new Membre($id);
N'oublies pas de créer la variable $id_membre appartenant à la classe membre :
protected $id_membre;
Effet :  quand je crĂ©e l'objet membre (2e code), mon information $id va ĂȘtre stockĂ© dans la variable $id_membre de la classe (donc $this->id) par l'intermĂ©diaire du constructeur.
coucougael94

coucougael94 Le 14 février 2017 à 12:29

[Moi, j'ai commencé la POO avec le langage C++.]
Pour que tu comprenne, voici un exemple d'une class Utilisateur :
MĂ©thodes (fonction membres ):
  •  -- Pour la connexion : --
  • isConnect()
  • connectUser()
  •  -- Pour le type d'utilisateur --
  • isAdmin()
  • isModo()
Attributs (variables membres) :
  • etat ( Pas connectĂ© ; ConnectĂ© ; Admin ; Modo )
  • id
  • pseudo
Utilisation de la class défini précédemment :
Création de l'objet : $user = new Utilisateur();
- Pour vérifié si l'utilisateur est connecté, il faut utiliser la méthode $user->isConnect().
    > Cet méthode, va vérifié que l'attribut état est différent de "Pas connecté".
- Pour vérifié si l'utilisateur est administrateur, utilise $user->isAdmin()
    > Return (etat == Admin);
...
Vous devez ĂȘtre connectĂ© pour poster une rĂ©ponse. Se connecter ou CrĂ©er un compte