Comme vous pouvez le voir dans les types de données Redis, Redis ne prend en charge que ces 5 types de données :
- Chaîne
- Liste
- Définir
- Hachage
- Ensemble trié
Donc, il n'y a pas de type de données d'objet et par conséquent, vous n'êtes pas en mesure de stocker un objet directement en tant que valeur. Vous devez d'abord le sérialiser (ou l'encoder en JSON avec le json_encode
fonction par exemple).
Y a-t-il un problème avec la sérialisation pour laquelle vous insistez pour stocker vos objets directement ?
Mise à jour : Selon ce que vous avez dit dans les commentaires, vous pouvez utiliser l'approche indiquée dans cette réponse
Vous pouvez donc utiliser :
$xml = $simpleXmlElem->asXML();
avant la sérialisation, puis après unserialize()
, utilisez le code suivant :
$simpleXmlElem = simplexml_load_string($xml);
De cette façon, vous n'avez pas à sérialiser un objet PHP intégré comme SimpleXmlElement
directement et il n'y aura aucun problème.