Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

flipflip
2007-05-16 15:59:14

Désolé pour ce moment d'absence, je suis tombé en rade de net depuis dimanche :(
Donc je reprend à cette discution http://forum.phpwebgallery.net/viewtopi … 077#p60077 .
Les seuls moment où je vois le besoin d'utiliser ALTER est pour l'ajout d'un champ et ça suppression (qui soit serialisé ou pas). Donc risque de mauvaise manipulation, erreur d'exécution et donc plantage de la table _config.

Eric a écrit:

- des *données* de paramétrage d'un plugin à stocker = pas de danger réel.
- des *informations* de fonctionnement d'un plugin = danger !

Parfaitement d'accord, les données nécessaires au fonctionnement du plugin (donc pas les paramètres du plugin) doivent eux avoir leur propre table.

rub a écrit:

Etape 1:
  o Mise en place de la librairie avec les fonctions de lecture/ecriture/création/suppression de paramètres
  o Chacune des fonctions auront une argument identique, le nom court du plugin
  o Tous les paramètres seront sauvegardés dans un seule ligne (serialize) de la #_config avec comme id "plugin_<pluginname>"
  o L'accés aux valeurs se fera de la façon suivante:
      $conf[<pluginname>][<value_name>]
    et après que la fonction de lecture ai été appliquée
  o La librairie pourra être intégrée dans les plugins en cours (si la fonction qui-va-bien n'existe pas, j'inclus le fichier librairie php qui va bien)
  o Intégration de la librairie pour la version 1.7.1 (=> des la passage en 1.7.1, vu que la fonction qui-va-bien existera bien, le librairie  fichier php qui va bien ne sera plus inclus)

Etape 2:
  o Integration en 1.7.1
  o Les plugins ne seront plus obligés d'inclure la librairie sauf pour garder une compatibilité avec la 1.7.0

Etape 3:
  o en 1.8
  o Pourquoi pas une table #_config_plugin! Dans ce cas, les données ne seront plus sauvegardés dans une ligne mais sur plusieurs
  o Migration des données plugin
  o Pas de changement à faire dans les plugins

hummmm appétisant ce programme :)

Quelle est la taile maximale du champ valeur? C'est la seule limite que je vois pour l'instant...

La seule limite que je vois est les performances du serveur, plus le champs sera long et plus il demandera de ressource pour le lire et le stocker.

VDigital a écrit:

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é?

Plus un pour une table séparé, si le plugin est désactivé, supprimé ça table n'est pas lu.

rub a écrit:

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

Non non il faut une librairie pour avoir un mode de fonctionnement et de création des plugins identique de façon à gagner en temps et ne pas reinventer la roue à chaque fois.

mathiasm a écrit:

Pour moi, on doit fournir une interface pour gérer les paramètres, surtout si on fournit la biblio de fonctions.
Comme ça, le dev qui n'est pas accro au HTML peut quand même fournir qqch de correct (Ça ressemble à un template d'administration, non?).

Euuu un mec qui dev en php est, il me semble, capable de contruire une interface html, avec 3 champs ? :)

Pour l'aspect dev je fais entièrement confiance à l'équipe, jusqu'a présent je n'ai jamais eu de mauvaise surprise ;)
Au contraire je joue toujours le parano de service concernant le stockage de la configuration des plugins.

rub
2007-05-16 13:13:09

VDigital a écrit:

Tu as compris ce que j'imaginais, c'est l'essentiel...
Arrange à ta sauce, c'est nickel.

Houlala, j'en suis pas la.
Je finis d'abord mes plugins PhpMyVisites et Dotclear (pour les liens à insérer) et la librairie... ensuite, on verra... ;-)

VDigital
2007-05-16 10:54:48

Tu as compris ce que j'imaginais, c'est l'essentiel...
Arrange à ta sauce, c'est nickel.
8-)

rub
2007-05-16 10:07:54

VDigital a écrit:

De toute façon copie de l'ancien en config_local.inc.#TIMESTAMP#.bak
Non?

En fait, je pensais plus à une table d'historiques, car il faudrait pouvoir modifier l'ensemble des fichiers "local" (config php, lang php, css, ...).
Dans une table, ca permettrai de restaurer une version supprimée ou écrasée.
"Historiser" dans une table, 2 façons par exemple:
  o nouvelle table dédiée
  o utilisation de la table #_conf et du futur nouveau champs #config.auto_load à false

VDigital
2007-05-16 07:48:19

De toute façon copie de l'ancien en config_local.inc.#TIMESTAMP#.bak
Non?

rub
2007-05-16 07:43:11

Purge et restructuration du fichier en gros!

Garder un historique pourrait être sympathique aussi!

VDigital
2007-05-16 07:31:28

L'objectif aussi de pouvoir au final proposer l'écriture et d'éliminer les espaces et les lignes vierges après le ?>

8-)

VDigital
2007-05-16 07:30:03

rub a écrit:

D'ailleurs, je mettais dit aussi qu'un plugin permettant de mettre à jour le fichier config_local.inc.php pourrait être sympa!

Je pensais aussi à une idée de ce genre.
Idée qui consisterait à redonner le contenu nécessaire strictement de config_local.inc.php.

Soit en gros:

Unset de $conf
@include de config_local
copie de $conf dans $prev
@include de config_default
Toute valeur de $prev (= à celle de $conf) => unset de la $prev.
Unset de $conf
$conf=$prev
plugin.CONF => var_dump($conf)
reload de $conf

rub
2007-05-16 06:57:55

mathiasm a écrit:

(Ça ressemble à un template d'administration, non?)

Un peu, je dirais plus une page générique.

En tout cas, on verra ce que ca donnera, mais le système pourrai éventuellement être adapté à nos fichiers config_*.inc.php pour faciliter la mise à jour.
D'ailleurs, je mettais dit aussi qu'un plugin permettant de mettre à jour le fichier config_local.inc.php pourrait être sympa!

mathiasm
2007-05-16 00:00:15

rub a écrit:

Par contre, je me disais aussi qu'il ne sera pas possible de mettre à jour les valeurs avec le config_local.php.
Car $conf[plugin_<plugin_name>][<param_name>], c'est peut-être un peu compliqué et avec le serialize, ce n'est pas possible.

Donc, je pensais rajouter dans l'administration, un fenêtre générique permettant de mettre à jour les paramètres des différents plugins (point d'entrée global et/ou dans la liste des plugins). Chaque développeur dans son plugin pouvant interdire cette mise à jour (par exemple, si son plugin fournit déjà les interfaces de mises à jour qui vont bien!)

Pour moi, on doit fournir une interface pour gérer les paramètres, surtout si on fournit la biblio de fonctions.
Comme ça, le dev qui n'est pas accro au HTML peut quand même fournir qqch de correct (Ça ressemble à un template d'administration, non?).

A+

rub
2007-05-15 18:47:54

rvelices a écrit:

rub a écrit:

Donc, je pensais rajouter dans l'administration, un fenêtre générique permettant de mettre à jour les paramètres des différents plugins (point d'entrée global et/ou dans la liste des plugins). Chaque développeur dans son plugin pouvant interdire cette mise à jour (par exemple, si son plugin fournit déjà les interfaces de mises à jour qui vont bien!)

Le probleme c'est que tu ne peux faire absolument aucune validation sur le parametre (entier positif, boolean, etc ....)

Effectivement, on peut seulement faire des contrôles sur le type (chaine, booléen, numérique).
On peut même pousser le truc pour gérer les tableaux.

Mais, c'est vrai pas de test sur entier position, entier compris entre x et y.
On pourrait implémenter qqchose pour gérer ca, mais ca serait trop compliqué, pas beau, pas nécessaire.

En fait, cette fenêtre aurait le même usage que le config_local.php avec les même contraintes, le mieux pour un plugin étant que ca soit lui qui gère ses paramètres.

rvelices
2007-05-15 18:40:27

rub a écrit:

Donc, je pensais rajouter dans l'administration, un fenêtre générique permettant de mettre à jour les paramètres des différents plugins (point d'entrée global et/ou dans la liste des plugins). Chaque développeur dans son plugin pouvant interdire cette mise à jour (par exemple, si son plugin fournit déjà les interfaces de mises à jour qui vont bien!)

Le probleme c'est que tu ne peux faire absolument aucune validation sur le parametre (entier positif, boolean, etc ....)

rub
2007-05-15 18:23:45

rvelices a écrit:

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 ...

Bonne idée, ca sera pour l'étape 3 par contre.


Par contre, je me disais aussi qu'il ne sera pas possible de mettre à jour les valeurs avec le config_local.php.
Car $conf[plugin_<plugin_name>][<param_name>], c'est peut-être un peu compliqué et avec le serialize, ce n'est pas possible.

Donc, je pensais rajouter dans l'administration, un fenêtre générique permettant de mettre à jour les paramètres des différents plugins (point d'entrée global et/ou dans la liste des plugins). Chaque développeur dans son plugin pouvant interdire cette mise à jour (par exemple, si son plugin fournit déjà les interfaces de mises à jour qui vont bien!)

rub
2007-05-15 18:17:10

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 ;-)

plg
2007-05-15 17:59:30

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 :-)

Pied de page des forums

Propulsé par FluxBB

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