JeuWeb - Crée ton jeu par navigateur
L'usage des classes en PHP est-il abusif ? - 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 : L'usage des classes en PHP est-il abusif ? (/showthread.php?tid=6347)



L'usage des classes en PHP est-il abusif ? - qwarnant - 24-08-2012

Bonjour,

J'ai lu un article sur Developpez.com, je l'ai trouvé adapté dans le cadre de JeuWeb en sachant les débats qu'il a déjà eu sur le forum sur ce sujet.

Les développeurs PHP sont-ils fonctionophobiques ? C'est en tout cas ce que pense un jeune développeur allemand. Sur sa page GitHub, nikic déplore la surdominance de l'OOP sur la programmation procédurale et dénonce la pratique selon lui trop répandue de programmation orientée classes.

D'après lui, cette réticene à utiliser des fonctions viendrait principalement du chargement automatique des classes, une fonctionnalité aujourd'hui largement répandue qui permet le chargement automatique de classes à la demande, ce qui est nativement impossible avec les fonctions. Les développeurs PHP seraient donc tentés d'exprimer leurs besoin au travers de méthodes, ce qui conduit à une approche orientée-classes moins naturelle que l'utilisation de fonctions.

nikic va jusqu'a dénoncer la pratique courante consitant à isoler chaque classe dans un fichier séparé et invite les développeurs à adopter l'approche Python où chaque fichier caractérise souvent un module et non une seule classe, permettant de ce fait l'usage naturel de fonctions.

L'article en question : ici

Quel est votre avis?


RE: L'usage des classes en PHP est-il abusif ? - Sephi-Chan - 24-08-2012

Je ne vois vraiment pas le point de son article.

Des tas de développeurs PHP utilisent des fonctions utilitaires, même ceux qui travaillent en objet.
De même, je ne vois pas le soucis d'avoir beaucoup de fichiers.

Ce qui est préoccupant à mon sens, ce sont les développeurs qui font de l'objet comme ils font du procédural, en encapsulant juste des fonctions dans des classes, au lieu de raisonner de manière plus profonde en terme de conception.


RE: L'usage des classes en PHP est-il abusif ? - qwarnant - 24-08-2012

Bonsoir,

Je suis d'accord avec toi, Sephi. J'ai l'impression que les nouveaux développeurs en PHP prennent la POO dans ce langage un peu comme de l'obscurantisme. Je connais pas mal d'apprentis dans ce langage qui ne souhaitent pas changer leur façon de penser en PHP procédural, pour du PHP objet.

Concernant l'article, je trouve ses arguments très pauvres et totalement faux.

Cordialement


RE: L'usage des classes en PHP est-il abusif ? - niahoo - 24-08-2012

J'ai pas lu l'article mais bon, vu qu'on est presque à l'unanimité en faveur du tout objet dans le monde de la programmation ça m'étonne pas que certains veulent des objets là ou il n'y en a pas besoin.

Perso je suis plus fonctions mais j'utilise les classes de PHP comme des modules blindés de méthodes statiques. comme ça t'as l'autoload mais t'as pas a galérer avec des states quand c'est pas la peine. (ça veut pas dire que je ne crée jamais d'objets, ça dépend juste des API que j'ai besoin de coder)


RE: L'usage des classes en PHP est-il abusif ? - Sephi-Chan - 24-08-2012

Je pense qu'il faut adopter le paradigme du langage qu'on utilise. À l'évidence, PHP devient un langage objet.
Je suis de plus en plus séduit par le fonctionnel pour son aspect stateless, mais les états ne me dégoutent pas pour autant et j'aime beaucoup le modèle objet de Ruby (qui est très différents du modèles classique utilisé par Java/PHP/C#).


RE: L'usage des classes en PHP est-il abusif ? - niahoo - 24-08-2012

Oui mais pour ruby c'est facile : l'objet est intégré depuis le début, le monkey patching te permet d'étendre ce que tu veux bien comme il faut, la syntaxe est adaptée.

En PHP c'est relativement casse-couilles de créer des classes. D'ailleurs j'ai une classe mère avec une seule propriété : $this->state Wink

la syntaxe de php pour les objets est totalement naze. Je préfère adopter le paradigme qui convient à la situation puisque le langage PHP permet de créer des fonctions statiques et a des array vraiment très puissants. Honnêtement il y a des situations ou créer 10 classes te prend une plombe et ne mène à rien alros que poser toutes tes fonction et les ranger après va 10 fois plus vite. Mais bon tout ça c'est du vent, ça dépend des situations. Effectivement si je dois coder avec d'autres personnes je vais me conformer à de l'Objet.


RE: L'usage des classes en PHP est-il abusif ? - Akira777 - 24-08-2012

Hum, je trouve que ça pousse pas mal à adopter une bonne organisation du code (si tu fais pas n'importe quoi avec les classes). On pourra dire ce qu'on veut, beaucoup disent toucher du PHP et codent en procédural, quand tu vois leur code c'est le bordel !

Malgré ses défauts l'objet n'est pas trop mal en PHP. Tout comme le procédural, on voit beaucoup d'OOP PHP vraiment très sale, s'il était plus avancé, j'en ai même peur que ce soit une catastrophe pire encore.

Après reste à savoir ce qu'on veut, pour ma part, j'utilise autant l'objet que possible, mais je ne met pas de côté le procédural. J'ai des fonctions PHP (je vois plus ça comme des helpers en fait...) à foison !


RE: L'usage des classes en PHP est-il abusif ? - Myrina - 25-08-2012

Je développe essentiellement en objet (Php/Java) mais également en procédural quand l'objet ne semble pas obligatoire.
Rien ne remplacera une bonne fonction; même si on la positionne dans un helper (j'en ai toujours quelques uns dans chacune de mes applications) elle restera toujours une fonction.
Par contre, l'objet permet de mettre en place des mécanismes de manière simple alors qu'en procédural, cela est un réel défi même si la permissivité du Php sur sa structuration laisse la porte ouverte à de nombreux contournements élégants ou non pour atteindre le même objectif.
Je pense que les gens qui discrédite l'objet de cette manière ne savent pas concevoir l'objet; comme l'a dit Sephi-Chan, faire de l'objet, ce n'est pas encapsuler les fonctions