Il y a quelques temps, j'ai commencé à regarder le fonctionnement des espaces de noms dans PHP, avec 10 ans de retard et l'impasse que j'avais fait sur ce système de gestion de classe, l'affaire n'était pas gagnée. Dès le premier aspect ça ma titillé et j'ai, comme toujours, mis mon cerveau en ébullition: Les espaces de noms de PHP permettent une gestion ultra simple de l'auto-chargement des classes depuis leurs différents dossiers. Il n'en fallait pas plus pour que j'attaque à recoder mon moteur de blog préféré en suivant ce principe. (En vrai je me suis fait la main sur des plugins qui tournent chez moi avec ces fameux namespaces) Et voila, je n'ai pas réfléchie, ça engendre des milliers de problèmes et d'incompatibilités avec le code actuel et je suis donc en train d'adapter et de bricoler pour que ça passe. Et comme il y a un moment ou évidement ça ne passe plus, je recommence en modifiant en conséquence. Je suis borné, j'ai déjà recommencé 3 ou 4 fois.
Il serait bon que pour une fois, vu que ça à l'air de me plaire, je prenne le problème dans son ensemble et que je pose les bases d'une réécriture propre. Je sais faire ça moi ?
Pour la petite histoire, je suis partie sur du 100% classe, plus de fichiers avec des bouts de code, plus de fichier avec 5 ou 6 classes dedans. Cette structure m'oblige donc à revoir certains aspects et rendent le code absolument incompatible (pour le moment) avec l'existant. Par exemple, les pages de la partie administration seront servies depuis un seul point d'entrée et non plus une page/fichier par lieu. Les plugins ne seront plus non plus géré comme aujourd'hui par fichier (_define.php, _admin.php, etc) mais pas classe. Tous les passage pirouettes du core de Dotclear à des méthodes statiques à travers des globales seront à proscrire. (J'ai même envie de passer en dynamique pas mal de classes) J'ai donc pas mal de soucis en perspective. Mais c'est ce qui fait la beauté du jeu. Et puis Dotclear est assez solide aujourd'hui pour que ce ne soit pas une nécessité avant longtemps. Ouf. Ah, et au passage, clearbricks serait engloutie par Dotclear. Voila.
1 De Franck -
Je vais surveiller tes progrès avec un œil intéressé ;-)
2 De JcDenis -
Pour l'instant je tâtonne. J'essaie de débusquer tout les points bloquant, de tester différentes solutions... Et j'avoue que certains sont vraiment impossibles 😅
Une fois que j'aurais une structure fonctionnelle à la fois coté admin et coté public, je ne manquerais pas de faire du bruit et demander des avis / conseils / aide !
3 De Franck -
J'ai « forké » ton dépôt localement pour pouvoir jeter un œil à ton code ;-)
4 De Open Time -
Pile de choses à faire
Un plugin à terminer de coder, pour enfin obtenir quelque chose de plus lisible… Quoi qu’à bien y réfléchir, je me demande s’il y a réellement un besoin de ce côté ! Mais bon, maintenant qu’il est commencé, autant le finir…...
5 De JcDenis -
Attention, ça va encore énormément bouger, on s'en doute 😅
Pour l'instant je passe juste tout le code en classes, après je mettrais en forme l'arborescence, ensuite j'engloutie certaines classes clearbricks et enfin je créer des classes abstraites ou d'interface pour consolider tout ça.
Et seulement après le vrai et long travail de teste et documentation pourra commencer !
6 De Da Scritch -
Ayant pas mal de plugin customs et aussi maintenant dans mon coin le spamplemousse qui est si efficace, je vais me tenir au courant pour ta refacto.
Ça sera peut-être l'occasion que le moteur de template de ClearBricks gagne des filtres de rendus, genre une modif à la volée en regex pour changer des boûts d'URL ?
Dotclear not dead !