pa-de-solminihac / clementine-framework-module-core

Core module for Clementine Framework (PHP MVC Framework)
0 stars 1 forks source link

améliorer l'héritage de la configuration #7

Open pa-de-solminihac opened 9 years ago

pa-de-solminihac commented 9 years ago

J'ai un module jstools avec notamment cette configuration par défaut :

[module_jstools]
persistent_datatables=0

Si j'ai un module site qui surcharge la configuration de jstools ainsi :

[module_jstools]
persistent_datatables=1

Lorsque je veux sortir jquery.datatable du module jstools pour en faire un module indépendant, je vais donc avoir un module jquerydatatable avec cette configuration par défaut :

[module_jquerydatatable]
persistent_datatables=0

Le problème, c'est que cela casse la compatibilité ascendante : lors de la mise à jour, la surcharge de jstools qui est faite ne sera plus prise en compte par le module jquerydatatables.

pa-de-solminihac commented 9 years ago

Quelques pistes pour solutionner le problème...

Solutions envisagées et abandonnées

l'installeur alerte bien qu'un nouvelle version est disponible, mais ne dit pas comment on y passe.

    1. alerter lors de la mise à jour ?

les mises à jour ne sont pas interactives, l'alerte pourrait trop facilement être ignorée. De plus en faisant ainsi on rompt le contrat des mises à jour automatiques

    1. modifier le module jquerydatatables pour qu'il ne prenne pas directement la valeur par défaut de son fichier config.ini, et qu'il prenne à la place la valeur de celui de jstools ?

c'est pas propre : contre-nature, contre-intuitif...


Solutions qui restent envisageables

ça peut rapidement devenir compliqué à gérer, notamment à cause des différents cas d'erreur et du fait qu'on ne peut éventuellement pas prendre systématiquement la meilleure décision automatiquement... à étudier.

    1. utiliser l'adoption pour faire hériter le module jquerydatatables de jstools ?
[clementine_inherit]
jquerydatatable=jstools
  1. la surcharge concernant le module jstools, elle sera elle-même surchargée par la valeur par défaut de jquerydatatable. Ça fonctionnerait seulement si on ne donne PAS de valeur par défaut dans le fichier config.ini. C'est un peu moins sale que la solution 3. mais c'est pas forcément super non plus...
pa-de-solminihac commented 9 years ago

En fin de compte la solution qui me semble la plus adaptée est un mix de 1. et 4. :

À noter que pour le cas de jstools, comme on l'éclate en plusieurs modules, le script serait réutilisable pour chacun des nouveaux modules.