Rester sur phpBB ?

Cela fait maintenant plus de 5 ans que mes forums tournent sous phpBB2 (et à part EDForum qui a commencé en phpBB1 pour ses premiers mois, je n'ai jamais utilisé que ça).

Ce script étant tout de même en fin de vie avec la sortie prochaine de phpBB3, se pose pour moi (comme pour surement pas mal de monde, vue la popularité de phpBB) la question de savoir vers quoi se tourner pour la suite.

Ayant quelques dizaines de mods plus ou moins imposants à mon actif sur phpBB2, j'ai eu l'occasion d'en relever les limites principales qui sont :

  • un code trop peu orienté objet (après un an passé à coder intensivement en objet au boulot, le retour à une architecture impérative et fortement séquentielle me rebute quelque peu).
  • de trop nombreuses redondances de code.
  • découlant de ces deux premiers points : une grande difficulté à développer des modules approchant un tant soit peu du plug and play.

J'ai donc regardé ce qu'on pouvait trouver actuellement comme scripts de forums pour voir ce qu'on pouvait avoir, puisque quitte à migrer quelques dizaines de mods, autant que ce soit dans de bonnes conditions.

Voilà ce que j'ai brièvement testé :

  1. phpBB3 : fort logiquement j'ai d'abord regardé là puisque c'est la suite logique... Mais même si les fonctionnalités ajoutées sont assez nombreuses et pour certaines vraiment bien pensées niveau interface, niveau code, c'est franchement pas terrible : toujours très séquentiel et pauvre en objets. C'est évidemment bien mieux que phpBB2 globalement mais c'est pas encore ça... Faut dire que les débuts des devs datent de 4-5 ans déjà, donc forcément...
  2. punBB : il a bonne réputation comme étant rapide, donc j'ai regardé un peu... Mais c'est pas mieux que phpBB3, voir moins bien avec un certain nombre de trucs codés en dur que même phpBB2 ne mettait pas en dur... Alors j'ai peut-être raté quelque chose avec le peu de temps que j'y ai consacré mais ça m'a franchement pas convaincu, d'autant que le code n'est pas plus objet que phpBB.
  3. Fire soft board, alias FSB : c'est alors que je me suis souvenu du script développé par Genova (ancien moddeur phpBB2), je suis donc allé voir ce que ça devenait et apparemment il a fait du bon boulot avec sa version 2 (proche de la sortie, puisqu'en RC4 déjà) : il a pensé au développement de mods, codé en objet, tout ça \o/ Apparemment il avait vu les mêmes défauts que moi dans phpBB2... Bref ça m'a l'air pas mal. Puis c'est développé par une équipe francophone pour une fois, ce qui ne gâche rien.

Après ces quelques investigations (pas très poussées, j'en conviens, vu que je n'ai regardé que 3 scripts différents et pas trop en détails...), mon choix se porte plutôt vers FSB. J'ai pas encore vraiment commencé à travailler avec, donc peut-être de mauvaises surprises en perspective... Rendez-vous dans quelques temps pour en savoir plus.

Soumettre un commentaire

La soumission de commentaire fonctionne via un envoi de mail à une adresse dédiée, pour plus de précisions sur les raisons de ce fonctionnement atypique vous pouvez consulter cet article.

2 commentaires

La critique du non objet est assez dure. Il existe des tas d'applications web, dont l'usage extrémiste de l'objet a rendu le code complètement austère. Des centaines de classes aux buts imprécis a priori.

Le fait est que la plupart des applications web ne requièrent pas de principe objets, tels que l'héritage et encore moins d'autres plus évolués. En PHP, c'est d'autant plus vain que le typage permet peu de chose. (Uniquement de la vérification dynamique à la version 5) La structuration des données est assez redondante avec l'usage d'une base de données relationnelle. (Et non-objet) Finalement, l’intérêt de la programmation orientée objet sont assez peu nombreux, mais bien existants.

La programmation impérative n'est pas à opposer à la programmation objet. Du moins, la définition conventionnelle dit que la programmation objet est impérative.

De l'autre coté, on peut très bien avoir une très bonne modularité, sans objet. Ce qui est le cas de Smarty, le moteur de templates. Si à mon avis personnel, Smarty fait bon usage de l'objet, en les utilisant pour représenter, un moteur de template ou un compilateur, il n'oblige en rien à programmer les modules sous forme d'objets.

Mais ce qui est marquant, c'est la supériorité à mon sens de l'architecture induite par ce moteur de template sur l'architecture de phpBB. Et je pense que c'est ce que vous reprochez en qualifiant phpbb de "séquentiel". L’architecture de phpBB oblige à transporter des énormes tas de variable pour "marquer" si oui ou non il faudra faire telle action à un moment de la séquence. Cette même architecture a quelques défauts que vous notez bien, avec des morceaux de code similaires, non regroupés sous des mêmes fonctions. Tout ça est la source de problèmes importants pour effectivement la programmation / l'installation de modules (Il existe quatre ou cinq tâches systématiques à effectuer pour l'installation de la plupart des modules, ce qui est la conséquence directe d'un problème d'architecture) mais se traduit également par une perte d'efficacité au niveau en particulier du traitement des templates de phpBB.

Je ne crois pas pour autant qu'il faille mettre ça sur le dos du manque d'objets dans le code. J'ai travaillé moi aussi sur des projets totalement objets, même si ce n'est pas ma profession, avec plusieurs centaines de classes en java, et l'objet à l'extrème introduit des problèmes pénibles. (Et en Java, on n'a jamais d'alternatives)

Tiens, un commentaire qu'est pas du spam, ça fait plaisir ^^

En effet, l'objet n'est sans doute pas une nécessité absolue pour faire une application efficace et compréhensible. Par contre pour faire une application très modulaire je trouve que ça aide quand même pas mal...

Il y a encore deux ans j'étais mitigé sur ce point : je ne trouvais pas que l'objet apporte forcément de grands plus. Mais maintenant après avoir codé en massivement objet sur un framework assez vaste depuis maintenant un an et demi, je suis nettement plus convaincu que l'architecture fortement objet apporte beaucoup et à beaucoup de points de vue (extensibilité, testabilité, organisation, réduction des collisions de noms...) mais il faut penser les choses de façons assez rigoureuses pour ne pas s'y perdre et il est clair que ça peut mettre pas mal de temps pour se mettre dans le bain quand on débarque sur l'application.

Après c'est clair que PHP n'est pas ce qu'on fait de plus puissant en matière d'objets, là aucun doute !

Sinon, les défauts de phpBB2 (j'ai peu regardé ce que faisait la v3, vu que je l'ai assez vite écartée de mes choix possibles), ceux que vous relevez me semblent effectivement compter parmi les plus gênants. Mais je pense quand même que l'aspect redondance de code serait très facilement réduit en utilisant un peu plus d'objets (avec plus de fonctions ça marcherait aussi mais je trouve ça moins pratique à l'usage)...