PHP My Interface
Cette fois-ci, je ne vais rien vous apprendre.
En fait voilà un gros problème auquel je fais face régulièrement (et je présume que je ne suis pas le seul). Disons que je met en place un site Internet. Dessus, je vais mettre un phpBB forum en PHP. Ensuite, je veux ajouter un bugtracker mantis, une gallerie photos gallery2 et un système de blog tel que wordpress.
Au total, je me retrouve avec 4 bases d’utilisateurs, 4 systèmes de templates différents et de nombreuses autres informations qui pourraient être mutualisées mais qui ne le sont pas.
Oui, je vous entend déjà dire “il existe des patchs d’intégration”. Il est vrai et d’ailleurs ce blog l’illustre bien (intégration Gallery2 / Wordpress). Mais mais mais :
- Chaque mise à jour de l’un ou l’autre des systèmes est une gallère
- Deux ça va, trois bonjour les dégats
- Malgré le bon travail pour certains d’entre eux… tout n’est pas forcément facilement intégrable
D’où une idée : PHP My Interface qui consisterait à mettre en place une “librarie” assez flexible pour être facilement branchable sur toute application PHP.
Après pas mal de réflexion, voici les conclusions auquels je suis arrivé.
Concernant les fonctionnalités à mutualiser :
- Système de template (afin de rendre plus facile d’intégration graphique de chaque application).
- Base utilisateur et toute fonction assurant la maintenance (ajout / modification / vérification mot de passe / permissions…)
- Gestion des erreurs
- … voire même (soyons fou) interface d’administration
Je verrai la réalisation de la manière suivante (disons dans le cas des users).
Après l’installation de phpbb et mantis (pour prendre un exemple) je vais dans un panneau d’administration PHPMyInterface (que nous appellerons PMI). J’indique que j’utilise ces deux systèmes là et un patch est automatique appliqués aux deux systèmes :
- Un patch SQL qui va mettre en place des tables users communes, avec évidemment des champs spécifiques à chacun d’entre eux
- Un patch PHP qui va rediriger tous les appels vers des fonctions user vers des fonctions interface (pmi_user_add par exemple).
- Un patch “HTML” qui redirige tous les écrans “user” vers des page variables ($pmi_page_user_add).
- D’affecter comme nom de fichier aux “pages variables” les pages de phpbb ( $pmi_page_user_add = ‘phpbb2/profile.php?mode=register’ pour schématiser). Ainsi, même quand je voudrais rajouter un user sur mantis, c’est une page phpbb qui s’affichera. Il faudra effectivement penser aux champs spécifiques à rajouter (inclus dans patch PHP ci-dessus)
- De faire en sorte que mes fonctions interfaces fassent appels aux fonctions phpBB.
Il ne s’agit donc pas de réinventer le feu (d’autres applications ont des gestions utilisateurs on ne peut plus stable) mais bel et bien de rajouter une surcouche tout en laissant le choix au webmestre de choisir quel sera le système qui sera en dessous.
Et puis, dans le meilleur des mondes, si un tel système devenait référence, les patches ne seraient plus à faire. Ils pourraient devenir natifs dans les applications PHP qui sortiraient.
Ce sujet me tiens vraiment à coeur. Cependant je me suis déjà pris pas mal la tête dessus tout seul dans mon coin et le temps ne me permet pas de faire ce projet de A à Z sur du long terme.
C’est pour cela que je lance une bouteille à la mer. Si vous êtes intéressé par une telle aventure : je suis preneur !
No comments yet. Be the first.
Leave a reply
