•  » Plugins
  •  » [Plugin] Gestion des paramètres

#31 2007-05-14 14:01:24

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [Plugin] Gestion des paramètres

Les anciens plugins qui n'effaceraient pas leurs traces en table config.
ou
Cas de perte du contenu du répertoire plugins.

Comment cela sera géré?


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#32 2007-05-14 14:04:48

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [Plugin] Gestion des paramètres

VDigital a écrit:

Il me semble qu'avec le préfix "plugin_", Mathias a peut être raison.

;-( ;-( ;-(  snif...

De toute façon, on n'est encore à l'étape 3... et l'avantage est que si on veut le faire, on pourra le faire quand on veut SANS influence sur les plugins développés sur la base de la librairie.

Suivons ce que les plugins vont donner, ce que va être implémentés et à partir de là, peut-être l'étape 3 ;-)

Hors ligne

#33 2007-05-15 10:32:35

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12671

Re: [Plugin] Gestion des paramètres

(discussion fort intéressante, merci à mathiasm de m'avoir demandé mon avis par email)

Mon avis sur la question: je suis très très favorable à l'écriture d'une petite bibliothèque de fonctions permettant la lecture/écriture/suppression de paramètres. Ce qui dans mon esprit donnerait:

Code:

// echo '<pre>'; print_r($conf); echo '</pre>';
//
// Array
// (
//     [history_guest] => 1
//     [log] => 1
//     [plugin_admin_advices] => Array
//         (
//             [param1] => value1
//             [param2] => value2
//             [param3] => value3
//         )
//     [plugin_event_tracer] => Array
//         (
//             [param1] => value1
//         )
// )

set_plugin_conf(
  'admin_advices',
  array(
    'param1' => 'new_value1',
    'param2' => 'new_value2',
    )
  );

delete_plugin_conf_parameter('admin_advices', 'param3');
delete_plugin_conf('event_tracer');
reload_conf();

// echo '<pre>'; print_r($conf); echo '</pre>';
//
// Array
// (
//     [history_guest] => 1
//     [log] => 1
//     [plugin_admin_advices] => Array
//         (
//             [param1] => value1
//             [param2] => value2
//         )
// )

En ce qui concerne la façon de stocker dans la table #config, mon avis c'est que #config.param doit être plugin_<plugin_id>_<param_name>, par exemple plugin_admin_advices_param2. Pas de sérialization (la structure est déjà là, donc sérialisation inutile). A noter que quand je parle de plugin_id, je parle de #plugins.id.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#34 2007-05-15 11:09:17

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [Plugin] Gestion des paramètres

z0rglub a écrit:

Mon avis sur la question: je suis très très favorable à l'écriture d'une petite bibliothèque de fonctions permettant la lecture/écriture/suppression de paramètres. Ce qui dans mon esprit donnerait:

Code:

// echo '<pre>'; print_r($conf); echo '</pre>';
//
// Array
// (
//     [history_guest] => 1
//     [log] => 1
//     [plugin_admin_advices] => Array
//         (
//             [param1] => value1
//             [param2] => value2
//             [param3] => value3
//         )
//     [plugin_event_tracer] => Array
//         (
//             [param1] => value1
//         )
// )

set_plugin_conf(
  'admin_advices',
  array(
    'param1' => 'new_value1',
    'param2' => 'new_value2',
    )
  );

delete_plugin_conf_parameter('admin_advices', 'param3');
delete_plugin_conf('event_tracer');
reload_conf();

// echo '<pre>'; print_r($conf); echo '</pre>';
//
// Array
// (
//     [history_guest] => 1
//     [log] => 1
//     [plugin_admin_advices] => Array
//         (
//             [param1] => value1
//             [param2] => value2
//         )
// )

C'est bien un truc comme ca que j'avais en tête.
Sachant que les valeurs dans le tableau ne sont pas que des chaines mais aussi des booléens ou des tableaux.

z0rglub a écrit:

En ce qui concerne la façon de stocker dans la table #config, mon avis c'est que #config.param doit être plugin_<plugin_id>_<param_name>, par exemple plugin_admin_advices_param2. Pas de sérialization (la structure est déjà là, donc sérialisation inutile). A noter que quand je parle de plugin_id, je parle de #plugins.id.

Par contre, je préférais avoir un serialize pour les raisons suivantes:
  o regroupement des paramètres par plugin plus forte
  o ca évite de pouvoir modifier facilement les données sans passer par la librairie
  o vue que l'accés se fera par $[plugin_admin_advices][param1] si on fait une ligne par paramètre, on aura des $conf[plugin_admin_advices_param1] à remettre dans un tableau $conf[plugin_admin_advices] et les $conf[plugin_admin_advices_param1] à unset.
    => cad une organisation de $conf différente de la table #_config

J'allais peut-être commencer les devs sur cette structure donc... quels sont les avis de chacun?

Hors ligne

#35 2007-05-15 11:48:00

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12671

Re: [Plugin] Gestion des paramètres

rub a écrit:

Par contre, je préférais avoir un serialize pour les raisons suivantes:
  o [...]
  o ca évite de pouvoir modifier facilement les données sans passer par la librairie

Argh... t'es à deux doigts de vouloir faire du logiciel propriétaire là. C'est du discours de décideur commercial (excuses moi d'être aussi brutal ;-)

rub a écrit:

o vue que l'accés se fera par $[plugin_admin_advices][param1] si on fait une ligne par paramètre, on aura des $conf[plugin_admin_advices_param1] à remettre dans un tableau $conf[plugin_admin_advices] et les $conf[plugin_admin_advices_param1] à unset.
    => cad une organisation de $conf différente de la table #_config

Oui, tout à fait. Je milite en faveur d'une fonction load_conf qui bouclerait sur les paramètres un par un, pour les transformer en booléen et pour les ranger dans des sous-tableaux.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#36 2007-05-15 12:49:12

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [Plugin] Gestion des paramètres

z0rglub a écrit:

rub a écrit:

Par contre, je préférais avoir un serialize pour les raisons suivantes:
  o [...]
  o ca évite de pouvoir modifier facilement les données sans passer par la librairie

Argh... t'es à deux doigts de vouloir faire du logiciel propriétaire là. C'est du discours de décideur commercial (excuses moi d'être aussi brutal ;-)

Ce n'est que pour la sécurité uniquement. Pas pour faire du propriétaire (depuis quand la sérialisation est du propriétaire?).

Dernière modification par rub (2007-05-15 12:49:37)

Hors ligne

#37 2007-05-15 13:03:25

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [Plugin] Gestion des paramètres

(Pour rappel, entre nous, dans les "searches" on fait quoi?)
Ceci dit, vos idées me plaisent bien.

("à deux doigts": on est encore à côté, non?).
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#38 2007-05-15 13:08:38

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [Plugin] Gestion des paramètres

VDigital a écrit:

(Pour rappel, entre nous, dans les "searches" on fait quoi?)

;-))

Hors ligne

#39 2007-05-15 14:03:50

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12671

Re: [Plugin] Gestion des paramètres

VDigital a écrit:

(Pour rappel, entre nous, dans les "searches" on fait quoi?)

On doit sérialiser pour #search car on ne connait pas à l'avance le nombre de paramètres utilisés et ce serait dommage de devoir faire évoluer le modèle de #search si on ajoute un champ dans #images (qui peut potentiellemet être faire partie de la recherche)

Ce qui me gêne dans la sérialisation dans #config.value, c'est que c'est pour "mettre des bâtons" dans les roues. Je pense que si cet argument n'avait pas été mis en avant, j'aurais émis moins de réserve.

Note: dans le futur, utiliser de la sérialisation dans #config.value pourrait avoir du sens, pour des paramètres complexes que l'on souhaite gérer par écran (la frontière est fine avec un ensemble de paramètres pour un plugin).


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#40 2007-05-15 14:06:17

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12671

Re: [Plugin] Gestion des paramètres

Bon cela dit, nos opinions sont très très proches en dehors de cette (sombre) histoire de sérialisation :-) Je donne mon GO, qu'elle que soit la méthode que rub choisira (sérialisation ou pas).


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#41 2007-05-15 14:12:32

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [Plugin] Gestion des paramètres

z0rglub a écrit:

Ce qui me gêne dans la sérialisation dans #config.value, c'est que c'est pour "mettre des bâtons" dans les roues. Je pense que si cet argument n'avait pas été mis en avant, j'aurais émis moins de réserve.

Je n'ai jamais écrit ca, dans mon esprit c'est pour la sécurité et l'encapsulation des paramètres pas pour mettre des bâtons dans les roues mais au contraire pour aider les développeurs, je suis navré qu'on me comprenne ainsi.

Si tu relis le post depuis le début :

o ca évite de pouvoir modifier facilement les données sans passer par la librairie

ne veut pas dire que je veux faire quelque chose de propriétaire ou bien mettre des bâtons dans les roues.

MA CONCLUSION:
Dans ce cas, la librairie ne sert à rien, chacun gère comme il veut ses paramètres dans la table #_config.

Dernière modification par rub (2007-05-15 16:49:04)

Hors ligne

#42 2007-05-15 16:57:27

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12671

Re: [Plugin] Gestion des paramètres

hop hop hop, pardon rub si je t'ai paru agressif. Ce n'était pas du tout l'objectif. Au contraire mon dernier post allait dans le sens: je te fais confiance pour faire de la bonne façon, sérialisation ou pas. La librairie de fonctions pour accéder au paramètres de configuration, c'est une très bonne chose.

J'ai une expérience professionnelle qui m'a appris a parfois trop me "méfier" des tentatives de cacher certaines choses alors que ce n'est pas justifié. Par exemple, la table de configuration ne contenait aucun libellé, que des chiffres, c'était complètement illisible (et c'était partiellement fait exprès).

happy coding


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#43 2007-05-15 17:30:47

rvelices
Équipe Piwigo
2005-12-29
1417

Re: [Plugin] Gestion des paramètres

J'ai pas trop participe,
mais serialise ou pas - ca peux toujours etre le choix du plugin s'il desire ... a lui de faire ...

Ce qu'il faudrait faire au minimum 3 fonctions du genre:
delete_param_from_conf_table
update_param_in_conf_table
insert_param_in_conf_table

je me demande s'il ne faudrait pas avoir une colonne #config.auto_load . Du genre j'ai un plugin avec beaucoup des donnnees, mais je l'utilise tres rarement donc il faudrait le charger seulement quand il y a besoin ...

Hors ligne

#44 2007-05-15 17:59:30

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12671

Re: [Plugin] Gestion des paramètres

Ce que je souhaiterais qu'on évite c'est de faire une requête par paramètre. En dehors de cette "crainte", je pense que toute amélioration n'est pas néfaste :-)


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#45 2007-05-15 18:17:10

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [Plugin] Gestion des paramètres

z0rglub a écrit:

hop hop hop, pardon rub si je t'ai paru agressif. Ce n'était pas du tout l'objectif. Au contraire mon dernier post allait dans le sens: je te fais confiance pour faire de la bonne façon, sérialisation ou pas. La librairie de fonctions pour accéder au paramètres de configuration, c'est une très bonne chose.

Nos posts se sont quelque peu croisés!

z0rglub a écrit:

J'ai une expérience professionnelle qui m'a appris a parfois trop me "méfier" des tentatives de cacher certaines choses alors que ce n'est pas justifié. Par exemple, la table de configuration ne contenait aucun libellé, que des chiffres, c'était complètement illisible (et c'était partiellement fait exprès).

Je comprends ;-)

Hors ligne

  •  » Plugins
  •  » [Plugin] Gestion des paramètres

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact