Jump to content

[Résolu] Stocker une valeur dans la table configuration, une bonne idée ?


Recommended Posts

Bonjour,

J'ai besoin d'enregistrer dans la base MySQL une info (une date)
Est-ce que créer une nouvelle ligne dans la table configuration est une bonne idée ou est-ce que cette table est pour un usage privé ?

Exemple :
Name = 'ATOOLINK_LAST_DATE'
Value = '2009-04-28'

L'id_configuration étant auto_increment il n'y en pas de réservé ?

Merci,

Link to comment
Share on other sites

Bonsoir,

Je ne vois pas en quoi, vu que dans tout les cas dans un Insert tu spécifie les champs et les valeurs !
Je n'ai pas modifié la structure des champs existant juste rajouté 1 ou 2 champs dans certaines tables.

J'ai fait de même pour osCommerce et il n'y a pas eu de soucis sur la boutique en Front ou Back Office.

Mais bon tant que... 8-/

Link to comment
Share on other sites

Bonjour,

J'ai besoin d'enregistrer dans la base MySQL une info (une date)
Est-ce que créer une nouvelle ligne dans la table configuration est une bonne idée ou est-ce que cette table est pour un usage privé ?

Exemple :
Name = 'ATOOLINK_LAST_DATE'
Value = '2009-04-28'

L'id_configuration étant auto_increment il n'y en pas de réservé ?

Merci,


Bonsoir,

oui c'est une bonne idée, voir du coté de
Configuration::get et Configuration::updateValue
(et getInt pour multilingue)
Link to comment
Share on other sites

Bonjour,

Je me suis largement servi de la table de configuration pour la version 0.4 de mon module.

voici quelques extraits de codes tiré du fichier .php de mon module :


Configuration::updateValue('PS_SA_WidthLeft', 190)

Ceci ajoutera la valeur 190 à la variable PS_SA_WidthLeft (ou mettera la variable PS_SA_WidthLeft à jour si elle existait déjà dans la table de configuration de prestashop.)

Pour y acceder :

$width = Configuration::get('PS_SA_WidthLeft');




Et enfin pour la supprimer de la table de configuration :

Configuration::deleteByName('PS_SA_WidthLeft');





bon code !

Link to comment
Share on other sites

Question pour la team spécialement.

Le setInvoice() de l'objet Order utilise cette API de donnée de configuration pour définir le numéro de la commande :

    public function setInvoice()
   {
       // Set invoice number
       $number = intval(Configuration::get('PS_INVOICE_NUMBER'));
       if (!intval($number))
           die(Tools::displayError('Invalid invoice number'));
       $this->invoice_number = $number;
       Configuration::updateValue('PS_INVOICE_NUMBER', $number + 1);

       // Set invoice date
       $this->invoice_date = date('Y-m-d H:i:s');

       // Save
       $this->update();
   }



On lit de dernier numéro de commande en configuration, on l'incrémente et on le restocke.

Si 2 clients créent une commande quasiment en même temps, ils risquent de se retrouver avec le même numéro alors qu'on a 2 commande différentes :
le 1er lit la config, l'incrément, puis le 2ie lit la config, l'incrément, le 1er stocke sa nouvelle valeur, le 2ie stocke sa nouvelle valeur.

Existe-t-il un moyen de se protéger de cette non ré-entrance ?
Ou suppose-t-on que cela ne devrait jamais arriver (quoique Murphy me dit toujours que ca finira par arriver)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...