L'usine à gaz encore plus grande !

ViPHP
ViPHP | 2291 Messages

14 août 2007, 11:49

Bonjour,

Je suis tombé sur une version PHPBB 3 RC4 et je n’ai pas résisté à l’installer je la trouve superbe bien plus ergonomique que les autres versions, mais ceux qui trouvait que c’était une usines à GAZ et bien j’ai une bonne nouvelles il y à encore beaucoup plus de gaz.
C’est simplement alusinant le nombre d’option.


Pour vous faire une idée.
http://forums.phpbb-fr.com/viewtopic_127292.html

ViPHP
ViPHP | 928 Messages

14 août 2007, 11:54

Personnellement j'aime beaucoup le thème de cette version (mis à part les informations des posteurs sur la droite), mais le gros défaut de phpBB à mes yeux, c'est que le code date de quasiment 5 ans. Le projet est totalement écrit en procédurale, et c'est très dommage pour le script PHP open source probablement le plus utilisé / moddé sur le web.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

14 août 2007, 12:18

@dunbar : je ne pense pas que cela soit ton intention, mais le terme "usine à gaz" est péjoratif. S'il designe les constructions d'aspect gigantesque et/ou compliqué, il implique surtout l'inefficacité de la chose, et c'est cet aspect qui ne colle pas à phpBB 3.

Pour le reste... je suis content que la version 3 commence à apparaître dans le monde réel, et au cas où vous vous poseriez la question : non, on n'a pas prévu de mettre à jour. La nouvelle version n'apporte rien dont nous n'ayons besoin et perso, j'aime bien notre subSilver :lol:

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

14 août 2007, 12:25

Le projet est totalement écrit en procédurale, et c'est très dommage pour le script PHP open source probablement le plus utilisé / moddé sur le web.
Le procédurale a fait ses preuves ! et comme tu dis phpbb à quelques années déjà, les premières version date de php3 ! c'est sur maintenant poru des applciations de cette ampleur, y a mieux que le procédural pur ! mais imagine le travail que ca représenterai de refaire phpbb en objet !

Faire évoluer un outil aussi important est un énorme travail ! compatibilité ascendate, facilité de mise à jour etc...

J'en sais quelques choses car pour notre cms, il y a du code qui date, quand on refait un module ou qu'on apporte de nouvelle fonctionnalité, qu'on modifie la structure de la base ont doit prendre en compte bcp de critère ! compatible php4 et php5, mysql4 et mysql5, facilité de mise à jour pour les client déjà équipé, etc... ! il est totalement ininteressant de ventre une mise à jour s'il nous faut plusieurs jours pour la mettre en place ! donc pour certaine fonctionnalité, l'ancienne méthode fonction toujours et pour les nouveaux site nous utilisons la nouvelle méthode etc...

Et nous n'avons que quelques centaines d'installation de notre outil !
pro : http://www.ohweb.fr -> studio de développement en PHP, expertise en e-commerce, certifié PrestaShop
perso : http://www.olecorre.com -> un dico de termes informatiques

J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

ViPHP
ViPHP | 2291 Messages

14 août 2007, 12:29

@dunbar : je ne pense pas que cela soit ton intention, mais le terme "usine à gaz" est péjoratif. S'il designe les constructions d'aspect gigantesque et/ou compliqué, il implique surtout l'inefficacité de la chose, et c'est cet aspect qui ne colle pas à phpBB 3.

Pour le reste... je suis content que la version 3 commence à apparaître dans le monde réel, et au cas où vous vous poseriez la question : non, on n'a pas prévu de mettre à jour. La nouvelle version n'apporte rien dont nous n'ayons besoin et perso, j'aime bien notre subSilver :lol:
Je voulais simplement dire (avec le sourire :wink: ) que si certain trouvait qu'il y avait beaucoup d'options avant, il y en na encore plus avec la nouvelle version.
Maintenant il est possible de débattre de telle ou telle option mais cela n’était pas le but de mon post.

En surement pas de quelque manière que se soit minimiser / dévaloriser le travail qui je m’en doute est gigantesque et très réussi

ViPHP
ViPHP | 928 Messages

14 août 2007, 12:46

@Cobaye : je me suis très longuement intéressé à phpBB, et je suis resté un long moment dans l'équipe du support français, donc je suis tout à fait conscient du travail sur phpBB. Si je ne suis pas convaincu c'est pour une raison simple : le développement de phpBB3 a démarré vers 2002 / 2003 si je me rappel bien, et PHP4 était déjà largement dans les moeurs. Il est possible (et facile) de faire de l'objet avec PHP4. Lorsqu'ils ont démarrés phpBB3, ils ont totalement réécrit le moteur, et c'est à ce moment là qu'ils auraient du se mettre au gout du jour. Au lieu de ça ils sont restés dans le bon vieux procédural, et 4 ans après les premières RC de phpBB3 étaient enfin disponibles.

Je suis entièrement d'accord que faire évoluer un outil est très difficile, donc c'est un peu trop tard maintenant. Ce qui ne change pas que les développeurs ont fait un très mauvais choix, et que même sans utiliser PHP5 ils auraient pu nous pondre un script très structuré et très facilement modable (au lieu d'avoir à modder des tonnes de procédural). D'autant plus que phpBB3 n'est toujours pas en stable, et que le support de PHP4 s'arrête dans moins d'un an ...

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

14 août 2007, 13:24

Pour remettre les choses dans leur contexte, rappelle-toi que ce qu'on appelle phpBB 3 aujourd'hui a commencé sous le nom "phpBB 2.1". Il n'était pas question à l'époque de réécrire tout le forum, et les changements ont en fait été incrémentaux. Le plan initial était de sortir une version 2.2 en pas trop de temps, mais dû à la défection de plusieurs membres le projet s'est allongé et est devenu ce qu'on l'on connait aujourd'hui.

Dire qu'il est "facile" de faire de l'objet avec PHP 4 est toutefois un peu exagéré à mon avis. Si on utilise massivement la POO en PHP 4 il faut se coltiner tous les passages par références, et probablement d'autre pièges auxquels je ne pense pas tout de suite (trouver un remplacement pour les constantes de classes par exemple). phpBB est une application monolithique, il n'est pas conçu pour être appelé à partir d'une autre application, c'est pourquoi il utilise des objets là où ça sert à quelque chose et des scripts là où il n'y a pas d'avantage évident. C'est d'ailleurs un modèle largement répandu.

Quant aux MODs... même avec une dose massive d'OOP et d'ORM, je doute qu'on parvienne à quelque chose de "très facilement modable" (à moins que l'on ne parle pas de la même chose). Et si on décide d'offre une grosse couche d'ORM et plein de hooks partout dans le code, ce sont les performances qui pêcheront. (à moins de précompiler, et dans ce cas c'est la complexité de l'installation qui augmente) Je ne dis pas que les gens de phpBB ont fait les meilleurs choix, je pense qu'on ne peut pas vraiment définir quels seraient les meilleurs choix et qu'ils ont visé à peu près au milieu. Si beaucoup de gens l'utilisent, alors c'est qu'ils ont visé juste...

ViPHP
ViPHP | 928 Messages

14 août 2007, 13:59

... ou alors que le succès de phpBB2 assure d'avance celui de phpBB3.

Pour te donner un exemple de ce qui pèche sur phpBB3 (enfin de mon point de vu), c'est que si par exemple demain tu as besoin de créer une plate forme autour de phpBB3, tu ne peux pas. Exemple : tu fait un site dynamique, et tu as besoin de créer un forum. L'idéal aurait été de pouvoir faire :
include($phpbb_root_path . 'include/api/forum.class.' . $phpEx);
Forum::add('Mon forum', 'Une description', 'paramètres suplémentaires etc..');
Alors que actuellement, la création (et la gestion - édition / déplacement etc ..) est gérée dans un fichier de l'administration, fichier de 58KO de procédural. Et là bonjour les copié collés, l'adaptation du code, les bugs parce que tu dois avoir renseigné les 30 paramètres passés en POST pour la création du forum, etc ...

Modifier le code pour faire en sorte qu'il y ait de classes pour la gestion des utilisateurs, des groupes, des forums, des messages ne prendrai pas tant de temps que ça (au maximum une semaine de développement pour les dev de phpBB3 qui connaissent très bien le code de leur projet).

Ensuite concernant le fait de rendre le forum plus facilement modable je vais te donner un autre exemple : l'ajout de BBcode. Dans phpBB2 l'ajout de BBcode était un véritable calvaire, surtout au niveau du Javascript puisque dans le template avec le formulaire de création de message tu as les BBcode gérés comme ceci :

Code : Tout sélectionner

<td><span class="genmed"> <input type="button" class="button" accesskey="w" name="addbbcode16" value="URL" style="text-decoration: underline; width: 40px" onClick="bbstyle(16)" onMouseOver="helpline('w')" /> </span></td>
pour ajouter des BBcode tu dois incrémenter la valeur de bbstyle() de 2. En clair, pour créer un MOD d'ajout de BBcode, c'est la galère étant donné que si d'autres BBcode ont déjà été ajoutés avant, la valeur ne sera plus 16 mais 20 par exemple. Le nombre de personnes qui buggaient à l'installation du moindre BBcode étaient vraiment important sur phpbb-fr.

Là j'ouvre phpBB3, je vais dans posting_buttons.html, et je vois ça :

Code : Tout sélectionner

<input type="button" class="button2" accesskey="c" name="addbbcode8" value="Code" style="width: 40px" onclick="bbstyle(8)" title="{L_BBCODE_C_HELP}" /> <input type="button" class="button2" accesskey="l" name="addbbcode10" value="List" style="width: 40px" onclick="bbstyle(10)" title="{L_BBCODE_L_HELP}" /> <input type="button" class="button2" accesskey="o" name="addbbcode12" value="List=" style="width: 40px" onclick="bbstyle(12)" title="{L_BBCODE_O_HELP}" />
alors qu'une simple boucle en PHP, avec un block dans le template aurait pu régler définitivement le problème et divizer par 10 le nombre de problèmes à l'installation d'un BBcode, ben ils ont garder l'ancien système.

Si tu regardes la source phpBB3, ça regorge de problèmes de ce genre, qui sont à mes yeux des défauts.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

23 août 2007, 00:26

Désolé de ne pas avoir répondu plus tôt, j'ai un peu de mal avec les posts en retard en ce moment et je ne savais pas par quel bout prendre celui-là. En tout cas, merci Genova d'avoir expliqué ton point de vue, j'apprécie sincèrement :)

Dans un sens, le truc sur les forums rejoint ce que je disais plus haut, ce que tu reproches à phpBB c'est d'être monolithique. Je suis d'avis qu'une interface de (lire "une classe dédiée à la") gestion des forums, utilisateurs, etc... aurait été une bonne chose, et je n'imaginerais pas démarrer un nouveau projet sans. D'un autre côté, dès le départ phpBB était prévu d'être monolithique donc ce choix a au moins le mérite d'être cohérent avec le reste. J'ai un petit peu réfléchi au problème et c'est difficile à mon avis de vraiment trouver le juste milieu. Un exemple : imaginons qu'on crée un logiciel de forum implémentant exactement la fonction citée plus haut. La méthode étant statique, cela signifie que notre classe "Forum" ne peut gérer qu'une installation à la fois, donc ne serait pas utilisable pour un site proposant la création/hébergement gratuit de forums, qui devraient en gérer plusieurs à la fois.

Bon, cet exemple particulier n'est pas forcément le meilleur, plutôt que de faire une méthode statique on fait une méthode euh... "normale" et tout marche comme prévu. Mais il y a d'autres problèmes, comme par exemple le choix du forum parent lors de la création d'un forum. Pour choisir le forum parent, il faut pouvoir récupérer/afficher la liste des forums, avec un formulaire approprié, donc il faut exposer plus de choses et on augmente la complexité, etc... Tout ça pour dire que s'il y a une solution magique, je ne l'ai pas encore trouvée. (mais j'y travaille :P)

Pour les BBCodes, pour phpBB2 ça n'est pas étonnant puisque tous les BBCodes sont en dur et qu'il n'était pas question de les modifier, en revanche je suis curieux de savoir comment le problème a été traité dans phpBB3 :-k

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

23 août 2007, 08:21

Pour en revenir au terme d'usine à gaz, en effet il a un côté péjoratif, mais seulement de la part de gens qui n'aiment pas la pléthore d'options. On retrouve cette opposition dans l'éternel débat Gnome/KDE. Ce sont deux approches radicalement différentes, et quand on me dit «KDE est une usine à gaz» je réponds «oui, c'est ce que j'aime et qui me donne ma liberté d'action quasi-infinie». Il faut assumer son statut d'unsine à gaz, ce n'est péjoratif que dans l'esprit de ceux qui trouvent systématiquement que beaucoup = trop ;)
La méthode étant statique, cela signifie que notre classe "Forum" ne peut gérer qu'une installation à la fois, donc ne serait pas utilisable pour un site proposant la création/hébergement gratuit de forums, qui devraient en gérer plusieurs à la fois.
On inclut un fichier de config, qui change selon l'instance installée du forum, donc ce problème n'a pas lieu d'être ;)
Mais il y a d'autres problèmes, comme par exemple le choix du forum parent lors de la création d'un forum. Pour choisir le forum parent, il faut pouvoir récupérer/afficher la liste des forums, avec un formulaire approprié, donc il faut exposer plus de choses et on augmente la complexité, etc...
On est dans le cadre d'une API, pas d'une page web, donc l'idée de «formulaire» n'est pas cohérente. Par contre dans la méthode Forum::add() on passe simplement le nom ou l'id du forum parent. S'il s'agit du nom il est résolu, sinon on a bien sûr à disposition quelques méthode utilitaires genre Forum::getAll() qui peuvent servir à ça.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

23 août 2007, 13:09

ce n'est péjoratif que dans l'esprit de ceux qui [...]
Désolé de te contredire, mais la définition la plus répandue d'usine à gaz est péjorative car elle implique l'inefficacité de la chose (ou le rapport disproportionné entre complexité / utilité).
On inclut un fichier de config, qui change selon l'instance installée du forum [...]
Hmm, pense "thread safe" ou "reentrant". Tu ne peux pas dans la même exécution ajouter un forum à deux installations différentes, ou alors c'est que tu as une méthode du genre Forum::change_config() et dans ce cas on peut se poser des questions sur le choix d'une classe statique...
on a bien sûr à disposition quelques méthode utilitaires genre Forum::getAll() qui peuvent servir à ça.
Euh... si ton application choisit le forum parent au hasard ou d'après son propre algorithme, j'imagine, oui. J'avais plus en tête l'exemple d'un centre de commande d'un site tentant de regrouper les fonctions d'administrations.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

23 août 2007, 17:00

Ouh, ça a l'air de débattre ici, donc je viens poser mon grain de sel :)
Mais PunBB n'est il pas mieux ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

23 août 2007, 17:04

Il n'existe pas de logiciel de forum absolument meilleur qu'un autre, tout dépend de leur usage (je parle des logiciels les plus courants, ne comparez pas k4bb à zForum).