Jak widać w typach danych Redis, Redis obsługuje tylko te 5 typów danych:
- Ciąg
- Lista
- Ustaw
- Hasz
- Posortowany zestaw
Tak więc nie ma obiektowego typu danych i dlatego nie możesz przechowywać obiektu bezpośrednio jako wartości. Musisz go najpierw serializować (lub zakodować w JSON za pomocą json_encode
funkcji na przykład).
Czy jest jakiś problem z serializacją, że nalegasz na bezpośrednie przechowywanie swoich obiektów?
Aktualizacja: Zgodnie z tym, co powiedziałeś w komentarzach, możesz zastosować podejście wskazane w tej odpowiedzi
Możesz więc użyć:
$xml = $simpleXmlElem->asXML();
przed serializacją, a następnie po unserialize()
, użyj następującego kodu:
$simpleXmlElem = simplexml_load_string($xml);
W ten sposób nie musisz serializować wbudowanego obiektu PHP, takiego jak SimpleXmlElement
bezpośrednio i nie będzie żadnych problemów.