Quand utiliser du PHP Objet ?


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19595
Inscription: 8 Aoû 2004

Message le Jeu Mar 27, 2008 20:29

gcvoiron a écrit:Mais en PHP, par exemple, pour une page d'inscription, pourquoi utiliser de l'objet, si ce n'est pour avoir un code plus clair/structuré ? Y a t-il d'autres avantages ?
pour être "in the move". Tout comme certains affichent le logo "xhtml valid", même quand ce n'est pas vrai.
le code n'est pas vraiment plus clair, loin de là.

tonguide
WRInaute passionné
WRInaute passionné
 
Messages: 1407
Inscription: 28 Nov 2003

Message le Jeu Mar 27, 2008 20:31

Je prend mon exemple pour illustrer ...

J'ai une classe pour générer le formulaire selon certains critères. (en libre, tu dois avoir Zend_Form comme librairie qui fait ça)

ça permet au moins d'être uniforme la dessus.

En second, si il y a une liste (<SELECT>), je la centralise également dans une classe, et en troisième, si il y a une vérification (regex ou n'importe quoi, pour la validité des champs que rentre tes visiteurs), c'est également centralisé.

Exemple, je dois vérifier le prénom, j'ai limité à 10 caractères (c'est un exemple). J'ai un admin qui permet de modifier un compte, j'ai une zone membre pour éditer son compte, j'ai un admin pour ajouter un compte, et une zone membre pour ajouter un compte. Et puis, j'ai également une liste de contact où on peut entrer le prénom de son contact.

Seulement, j'ai systématiquement limité à 10 le prénom ... et je m'aperçois qu'il y a un prénom qui fait 25 caractères que je n'avais pas pensé ... J'ai pas de centralisé via une class, je me tape chaque fichier à modifer (ici, au moins 5, dans d'autres cas, ça peut être 100 ...), j'ai centralisé via une class, j'ai un seul fichier, une seul ligne à modifier.

Niveau maintenance, c'est énorme, niveau rapidité de dev, c'est énorme (et ça évite les erreurs de copier/coller), niveau travail en groupe, idem et j'en passe.

Donc j'aurai tendance à dire que l'objet est indispensable en dehors d'un tout petit projet qui n'a pas pour ambition d'évoluer.

gcvoiron
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 494
Inscription: 19 Oct 2005

Message le Jeu Mar 27, 2008 20:36

Ok pour l'exemple. Mais si tout est déjà centralisé dans un fichier de fonctions... ça revient au même, non ?


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19595
Inscription: 8 Aoû 2004

Message le Jeu Mar 27, 2008 20:44

gcvoiron a écrit:Ok pour l'exemple. Mais si tout est déjà centralisé dans un fichier de fonctions... ça revient au même, non ?
tout à fait.
Car trop de personnes comparent un développement anarchique avec la poo. Alors qu'en développement plus traditionnel, rien n'empêche de faire du code (sous forme de fonctions) qui soit réutilisable.
Tout comme on peut avoir du html 4 mieux structuré que du xhtml strict

tonguide
WRInaute passionné
WRInaute passionné
 
Messages: 1407
Inscription: 28 Nov 2003

Message le Jeu Mar 27, 2008 21:29

Les possibilités des fonctions sont très limités quand elles sont isolés (sans classe, c'est forcement isolé, sauf si on commence à mettre 45 global par fonction et/ou 145 paramètres), une classe c'est un ensemble de fonction (méthode) qui, pour faire simple, peuvent se renvoyer des données et qui ont des possibilités que n'a pas une simple fonction (et vraiment pas des moindres).

Mais là, c'est vraiment rentrer dans les détails, il y a suffisamment de tutoriel sur le thème pour t'expliquer. Chose que je ne veux pas faire, pour des raisons évidentes de timing :)

Leonick, tu sais réellement te servir de la POO ? parce que tes commentaires montrent vraiment l'opposé. Même si un code utilisant POO n'ai pas forcement mieux codé que du procédural, entre celui qui maitrise un minimum la POO, et celui qui maitrise que le procédural, il y a une différence véritablement énorme.

Evidemment, si tu te bases sur le fait que tout ceux qui prog en objet sont mauvais, on va pas allé loin. Mais ce n'est pas parce que tu n'as pas saisis l'intérêt que forcement, c'est une méthode à oublier, et surtout l'a déconseillé à ceux qui veulent s'en servir.


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19595
Inscription: 8 Aoû 2004

Message le Jeu Mar 27, 2008 21:45

tonguide a écrit:si tu te bases sur le fait que tout ceux qui prog en objet sont mauvais,
non, mais le contraire non plus. Donc comparer un développement poo bien développé avec un mauvais développement procédural, c'est sur qu'on donne l'avantage à la poo.
Et puis bon, la poo en php ce n'est pas vraiment de la poo. Il manque énormément d'avantages (voir plus haut).
le php reste un langage non typé, donc déjà, ça limite beaucoup

tonguide
WRInaute passionné
WRInaute passionné
 
Messages: 1407
Inscription: 28 Nov 2003

Message le Jeu Mar 27, 2008 21:51

L'argument fatal, c'est le non-typé.

Et je n'ai pas dis que je compare un bon dev POO et un mauvais dev Procédural, mais au contraire, 2 bon dev POO/Procédural ... Et bah il est indéniable qu'un bon dev POO aura un code plus portable, plus maintenable, facilitant le travail d'équipe, facilitant la réutilisation de code (et je ne parle pas de structure ni de propreté) et faisant gagner du temps. (car tu ne peux pas automatiser autant avec des simples fonctions, comparé à une série de class/librairie etc.)

J'espère que sur ça, on est au moins d'accord ?


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19595
Inscription: 8 Aoû 2004

Message le Jeu Mar 27, 2008 22:01

tonguide a écrit:J'espère que sur ça, on est au moins d'accord ?
oui.
Mais en fait, c'est vrai que si on se met à la poo avec php, on trouve ça super.
Mais quand on a commencé avec java, tout de suite ça parait moins intéressant. Car pour une bonne réutilisabilité du code, c'est vrai que le polymorphisme est très intéressant. Et avec un langage non typé, adieu.
la capture des exceptions aussi, mais elle existe aussi en php4, à un degré moindre, soit.

tonguide
WRInaute passionné
WRInaute passionné
 
Messages: 1407
Inscription: 28 Nov 2003

Message le Jeu Mar 27, 2008 22:10

la question étant PHP objet, j'y ai répondu :)
Et comme effectivement, je ne connais que PHP (ou croit connaitre :)) et malheureusement pas Java, je juge sur ce que je peux juger.
C'est à dire, procédural / poo (qui était justement la question).

Nico92
WRInaute discret
WRInaute discret
 
Messages: 85
Inscription: 1 Oct 2007

Message le Ven Mar 28, 2008 1:07

tonguide a écrit:la question étant PHP objet, j'y ai répondu :)
Et comme effectivement, je ne connais que PHP (ou croit connaitre :)) et malheureusement pas Java, je juge sur ce que je peux juger.
C'est à dire, procédural / poo (qui était justement la question).


Justement, même si je suis d'accord avec toi sur les aspects positifs de l'OO, fais un peu de java ou de C#, et tu verras toute la dimension et la subtilité de l'OO. Comme tu dis, on croit connaitre, mais je t'assure qu'on en apprend presque tout les jours ^^

Pour vraiment tirer profit de l'OO, il faut modéliser.
Faire de l'objet pour de l'objet de sert strictement à rien. Au pire, c'est une façon de présenter son code, rien de plus.
J'ai rarement vu du code objet en php tirant partie de l'héritage (il faut dire que je n'ia pas bcp cherché ^^).

Par contre, c'est vrai que le non typage de PHP est un frain au dev en OO.
L'abscence de paquetage aussi (je préfère cette notion à celle d'espace de nom que j'ai décidément du mal à piger sans m'arracher les cheveux).
Mais ca, c'est comme pour tout, il faut y avoir gouté pour s'en rendre compte :)

Quand utiliser du PHP Objet ?

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Shared Stuff, Google SketchUp

  • Suggestion de mots
    Cet outil vous fournit une liste de mots sémantiquement proches du mot que vous fournissez en entrée. Il peut servir à vous donner des idées de mots à utiliser sur vos pages, voire de contenus à ajouter.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités