Salut,

Voilà quelque temps que je souhaite apporter une modification assez
importante dans Galette :
http://redmine.ulysses.fr/issues/417

Depuis novembre 2012, j'ai épisodiquement travaillé sur le sujet ; mais
j'ai aussi passé un temps monstrueux à remettre ça à niveau à chaque
fois que je m'y suis remis :(

En effet, la nature même de la modification implique de ré-écrire et de
supprimer l'ensemble des fichiers PHP présents directement à la racine
de de galette, les templates doivent changer aussi, de même que les
chemins vers les fichiers javascript, css, images, etc...

Concrètement, que signifie cette évolution ?

Plusieurs choses :
1- l'application ne devra plus forcément être intégralement servie par
le serveur web,
2- on met en commun différents fichiers PHP actuellement épars,
3- les URL deviennent abstraites, alors qu'elles sont aujourd'hui basées
sur des noms de fichiers,
4- Une application plus « moderne ».

En ce qui concerne le point 1, ce que l'on a aujourd'hui :
galette/ <-- racine web
    lib/
    includes/
    gestion_adherents.php
Tout ce petit monde répond aux URL suivantes :
http://monsite.fr/galette/
http://monsite.fr/galette/lib/
http://monsite.fr/galette/includes/
http://monsite.fr/galette/gestion_adherents.php

Et ce que l'on aurait demain :
galette/
    lib
    includes/
    webroot/ <-- racine web

Si la racine web est définie sur le dossier webroot, les autres dossiers
ne seront absolument pas accessible via quelque URL que ce soit. Bien
évidemment, le dossier galette peut toujours faire office de racine, et
le comportement sera le même qu'avant.

Le point 2 quant à lui devrait permettre de rendre le code plus facile à
maintenir, et aussi de mettre en commun pas mal de choses actuellement
redondantes.

Et enfin, le troisième point permettrait d'avoir des URL du type
galette/member/show/2 au lieu de galette/voir_adherent.php?id_adh=2.
L'avantage, c'est que les URL ne sont plus qu'une sorte de directive de
configuration, qu'il est même possible de traduire (et obtenir ainsi
galette/adherent/voir/2 - c'est possible, j'ai testé, restent à voir les
implications et limitations -- on verra).

Sur le plan technique, j'ai décidé de tester Slim
(http://www.slimframework.com/), que je trouve vraiment pas mal : c'est
simple, souple, et suffisamment puissant pour faire tout ce dont j'ai eu
besoin jusque maintenant. Mon choix est arrêté sur cette bibliothèque.

Bon... Passons aux « sujets qui fâchent » maintenant....

- Pendant le temps nécessaire à ce développement, Galette n'évoluera
plus, hormis d'éventuels correctifs mineurs.
Cela va prendre un certain temps de tout modifier, encore plus  de
vérifier et de tester (plusieurs mois).
- Il est fort possible que des bogues importants surviennent (on va
essayer d'éviter, hein, mais il faut être réaliste :p)
- Les plugins seront tous à revoir (mais on y accèdera potentiellement
avec de de jolis liens du genre http://monsite.fr/carte plutôt que
http://monsite.fr/plugins/plugin-maps/maps.php :p)...

Ce devrait être la dernière modification de fond sur Galette avant un
bon moment ; sauf imprévus (qui sont par nature, imprévisibles).

Je ne sais pas encore quand exactement je vais mettre ça définitivement
en chantier.
Comme je le disais, j'ai déjà commencé
(https://github.com/galette/galette/compare/feature/slim), et je ne
souhaite pas perdre le temps passé cette fois.
J'envisage potentiellement d'apporter les dernières modifications à la
version 0.8.2, de la sortir, puis d'embrayer là dessus ; rien n'est arrêté.

Des avis ? Des remarques ?

++
-- 
Johan

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Galette-discussion mailing list
Galette-discussion@gna.org
https://mail.gna.org/listinfo/galette-discussion

Répondre à