Skip to content
  • Maïeul's avatar
    Début pour le passage du stockage de `serialize` à `json_encode()`. · 4da796fb
    Maïeul a rédigé
    - Le filtre `|tenter_unserialize` est déprécié.
    - Il est remplacé par `|formidable_deserialize`.
    - Ce filtre peut recevoir au choix :
      * Un tableau, qu'il retourne tel quel
      * Un tableau serializé via `json_encode`
      * Un tableau serializé via `serialize`
    - Dans les deux dernier cas, il renvoie la version deserializé, en cas
    de réussite, sinon l'argument passé.
    
    Exemple
    
    ````
    include_spip('formidable_fonctions');
    'filtre');
    $a = ['a' => 'a'];
    
    $a = json_encode($a);
    var_dump($a);
    
    $a = formidable_deserialize($a);
    var_dump($a);
    
    $a = serialize($a);
    var_dump($a);
    
    $a = formidable_deserialize($a);
    var_dump($a);
    
    $a = serialize($a).'plop';//Serialisation corrompu
    var_dump($a);
    
    $a = formidable_deserialize($a);
    var_dump($a);
    ````
    
    Ainsi, pas besoin de convertir tous les formulaires de `serialize`  à
    `json_encode`  à la mise à jour du plugin formidable :
    on peut le faire au fur à mesure qu'on modifie les champs/traitements
    d'un formulaire.
    
    On utilisera donc ce filtre à chaque fois que l'on veut déchiffrer
    depuis la BDD :
    - * traitements d'un formulaire
    - * saisies d'un formulaire
    - * réponse d'un champ multivalué (ex: checkbox)
    4da796fb