JeuWeb - Crée ton jeu par navigateur
Quels sont les avantages de la POO ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Quels sont les avantages de la POO ? (/showthread.php?tid=4058)

Pages : 1 2 3


Quels sont les avantages de la POO ? - F.A.B. - 08-06-2009

Salut a tous !

Je sait qu'il existe pas mal de sujet sur la POO sur le forum, mais je n'en ait pas trouvé qui répondent a mes questions...

Étudiant dans un IUT d'informatique, j'ai put apprendre par mes cours, la POO avec la langage C++ et java. Sauf que que PHP a une différence par rapport a ces langages (a moins que je ne me trompe :heuuuSmile, c'est que chaque objets n'existe que sur la page ou il a été créer. Il est donc nécessaire d'inclure a chaque fois ces classes sur chaque pages ou elles figurerons.

De plus, a ma connaissance, il n'est pas possible de stocker un objet dans sa globalité dans une bdd. Il faut donc créer des méthodes qui se chargerons d'enregistrer les attributs dans la bdd.

Rare sont les sujets qui parlent des l'utilisation de POO en PHP sur plusieurs pages, ainsi que de la sauvegarde d'objet dans la bdd. Je vous demande donc qu'elle sont concrètement les avantages de la POO en PHP par rapport a un codage en procédurale classique ?


RE: Question - quels avantages pour la POO ? - comg - 08-06-2009

En procédural également les "objets" ne passent pas de pages en pages, la POO facilite la récupération d'un objet (car une fois la classe appelée, l'objet à la même "définition" d'une page à l'autre).
Je viens de débuter la POO, mais j'y suis déjà accro Big Grin


RE: Question - quels avantages pour la POO ? - barst - 08-06-2009

Tu peux sérialiser un objet et le mettre en session, ce qui être également à la transmission des infos de page en page sans rechargement. Wink


RE: Question - quels avantages pour la POO ? - Roworll - 08-06-2009

C'est aussi ce qui me gênait dans la POO sous PHP : La non persistance des objets.

Par contre, cela apporte plein de facilité sur l'évolution du code, la maintenance, la documentation, etc.


RE: Question - quels avantages pour la POO ? - F.A.B. - 08-06-2009

(08-06-2009, 12:40 PM)comg a écrit : En procédural également les "objets" ne passent pas de pages en pages, la POO facilite la récupération d'un objet (car une fois la classe appelée, l'objet à la même "définition" d'une page à l'autre).
Je viens de débuter la POO, mais j'y suis déjà accro Big Grin

Oui c'est vrai, cela en revint donc au même ^^ (donc pas d'avantage ?)


(08-06-2009, 12:46 PM)barst a écrit : Tu peux sérialiser un objet et le mettre en session, ce qui être également à la transmission des infos de page en page sans rechargement. Wink

Mais ton objet, pour pouvoir être utiliser sur l'autre page, il a aussi besoin de la définition de la classe (inclure la classe de l'objet) pour être comprit par la page non ? En gros sa évite de réécrire un objet qui existe déjà.
(Un exemple d'utilisation serai a la fin de la page d'enregistrer les attribues de l'objet dans la bdd, puis de stocker l'objet sérialisé dans un $_SESSION[] ?)
Au moins, c'est une bonne chose a savoir :hahahaha:


RE: Question - quels avantages pour la POO ? - barst - 08-06-2009

Pour éviter les oublis d'inclure, il y a la fonction magique __autload.

Sans rentrer dans les détails, elle te permet d'attraper les classes non définies par un include et donc de faire cet include dynamiquement.

En exemple, voici ma fonction "__autoload"
Code PHP :
<?php 
function __autoload($class)
{
if(
is_file($GLOBALS['obj_path'].'Controller/'.$class.'.php' ) ) require_once($GLOBALS['obj_path'].'Controller/'.$class.'.php' );
else if(
is_file( $GLOBALS['obj_path'].'Model/'.$class.'.php' ) ) require_once($GLOBALS['obj_path'].'Model/'.$class.'.php' );
else if(
is_file( $GLOBALS['obj_path'].'View/'.$class.'.php' ) ) require_once($GLOBALS['obj_path'].'View/'.$class.'.php' );
else if(
is_file( $GLOBALS['obj_path'].'Util/'.$class.'.php' ) ) require_once($GLOBALS['obj_path'].'Util/'.$class.'.php' );
else throw new
Exception('Unknown Class ['.$class.']',0001);
}

Je t'encourage à continuer ton apprentissage en POO PHP et c'est vrai que tu découvriras au fur et à mesure des fonctionnalités qui t'aideront.
De base, il est normal d'avoir des questions et nous sommes là pour t'aider si tu veux connaître un mécanisme en PHP.


RE: Question - quels avantages pour la POO ? - pascal - 08-06-2009

La POO est plus facilement maintenable que le procédural :
http://wiki.jeuweb.org/tutoprog/passage_a_la_poo

En procédural, on fait un script, on déclare des variables et on appelle des fonctions pour les manipuler.

En POO, on fait un script qui utilise des classes via des objets. Les objets relient les variables (= les attributs de l'objet) et leur manipulation (via les méthodes, des fonctions dédiées).

La POO permet d'écrire des scripts plus courts et plus maintenables qu'en procédural (on peut aussi en procédural, mais c'est plus de travail lors de l'éccriture du script)

A+

Pascal


RE: Question - quels avantages pour la POO ? - Sephi-Chan - 08-06-2009

Ce qu'apporte la POO selon moi :
  • Une factorisation du code, apporté grace à l'héritage, notamment.
  • Une sécurisation plus simple : on peut écrire des règles de validations dans nos accesseurs, ça garantit l'intégrité des données.
  • Une clarté certaine : la notation d'objet avec ses attributs et méthodes garantit un bon découpage.

Ensuite, pour tirer pleinement profit de la POO, il faut la pratique, la pratique, et la pratique encore. On peut également aller regarder comment s'en servent les développeurs de frameworks puisque généralement ils suivent intelligemment les design patterns et les bonnes pratiques du développement.


Sephi-Chan


RE: Question - quels avantages pour la POO ? - F.A.B. - 08-06-2009

merci pour vos réponses.

Je vais avoir pas mal de test a faire avant de vraiment m'habituer a la POO en PHP. Car je n'avait pas vraiment pensé a l'origine, a faire mon jeu en POO.


RE: Question - quels avantages pour la POO ? - My Hotel - 08-06-2009

Je pense que la plupart des avantages de la POO ont été donnés, mais je voudrais te donner un conseil, vu que j'ai lu que tu allais "convertir" ton site à la POO.

Fais attention à ne pas simplement regrouper tes fonctions en classes, mais il faut repenser le jeu entier pour la POO, c'est n'est pas une simple concaténation de méthodes. Il faut exploiter l'héritage, les patterns...

Donc, si tu as déjà tout codé, prépare toi à un recodage presque complet de ton site Wink, où à utiliser la POO à mauvais escient...

Sache qu'il vaut mieux un bon code en procédural qu'un mauvais code en POO!

Bye