[spip ↪ issue_5095] 8 commits

spip/spip | 8 commits

Par Matthieu Marcillaud, le 5 octobre 2024 à 09h37min :

tests: Add tests for Serializer

Report adapté de

Ajouté
ecrire/tests/Fixtures/A.php
ecrire/tests/Fixtures/Awithwakeup.php
ecrire/tests/Fixtures/B.php
ecrire/tests/Utils/SerializerTest.php

Détails : tests: Add tests for Serializer (dafdba9a) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 5 octobre 2024 à 09h37min :

fix: mauvais nom de variable

Modifié
ecrire/src/Utils/Serializer.php

Détails : fix: mauvais nom de variable (46db909d) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 5 octobre 2024 à 09h37min :

fix: typo dans l’option allowed_classes

Modifié
ecrire/src/Utils/Serializer.php

Détails : fix: typo dans l'option allowed_classes (fb87989a) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 5 octobre 2024 à 09h37min :

fix: il ne faut pas serializer le tableau de la valeur unique car en cas de charset incorrect Zumba\JsonSerializer\JsonSerializer transforme le tableau en tableau associatif, ce qui est un objet json et plus un array, et la deserialization echoue. On serialize donc la valeur telle quelle, et on l’encapsule dans un crochet, ce qui est le signe distinctif d’une données json serializée

Modifié
ecrire/src/Utils/Serializer.php

Détails : fix: il ne faut pas serializer le tableau de la valeur unique car en cas de... (9412f433) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 5 octobre 2024 à 09h37min :

refactor: utiliser Spip\Utils\Serializer pour serializer/deserializer les données de configuration

Modifié
ecrire/inc/config.php

Détails : refactor: utiliser Spip\Utils\Serializer pour serializer/deserializer les données de configuration (32b1ea84) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 5 octobre 2024 à 09h33min :

build: une classe Spip\Utils\Serializer pour gérer

  • la serialization safe de données qui peuvent être stockées en base en json_encode (qui ne casse pas en cas d’edition manuelle, ou de soucis de charset ou planes utf8), via une version étendue de json_encode qui prend en charge les charsets non utf et
    les objets PHP
  • deserialization safe via un json_decode qui n’autorise qu’une liste de classes explicites

Refs: #5095

fix: deszerializer avec Utils\JsonSerializer()

Ajouté
ecrire/src/Utils/Serializer.php

Détails : build: une classe Spip\Utils\Serializer pour gérer (ee061363) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 5 octobre 2024 à 09h33min :

build: une classe Spip\Utils\JsonSerializer pour surchargcer \Zumba\JsonSerializer\JsonSerializer et prendre en charge allowed_classes

Ajouté
ecrire/src/Utils/JsonSerializer.php

Détails : build: une classe Spip\Utils\JsonSerializer pour surchargcer... (be8cf8f1) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 5 octobre 2024 à 09h33min :

build: require zumba/json-serializer GitHub - zumba/json-serializer: Serialize PHP variables, including objects, in JSON format. Support to unserialize it too.

Modifié
composer.json
composer.lock

Détails : build: require zumba/json-serializer https://github.com/zumba/json-serializer (9e3c7056) · Validations · spip / spip · GitLab