all*_*ery 13 php serialization object
我已经看到了一些处理序列化SPL对象的创造性解决方案,但我正在寻找更多选项(或详细说明).我将嵌套的序列化对象(其中一个是SimpleXML)存储在数据库中,以后才能进行非序列化.这显然会引起一些问题.
$s = new SimpleXmlElement('<foo>bar</foo>');
$ss = serialize($s);
$su = unserialize($ss);
// Warning: unserialize() [function.unserialize]: Node no longer exists...
Run Code Online (Sandbox Code Playgroud)
有没有人对处理序列化SPL对象的高可靠性方法有任何见解?__sleep()/ __ wakeup()覆盖?铸造到stdClass的?转换为字符串,然后序列化?
任何帮助表示赞赏.
[ 编辑:这些XML模式的范围和变化太多,无法使用ORM进行映射.它们在最基本的层面上是有状态进程中的任意有效负载,在宁静的API中触发.
Jos*_*tey 32
尽管有关于适当性的问题,您可以将其转换回XML,如下所示:
$xml = $simpleXmlElem->asXML();
Run Code Online (Sandbox Code Playgroud)
然后,当您从数据库中提取它时:
$simpleXmlElem = simplexml_load_string($xml);
Run Code Online (Sandbox Code Playgroud)
至于是否适合序列化大块的XML,将XML放入数据库可以消除使用关系系统的大部分优势,但您确实具有能够容纳任意工作负载的优势.如果某些字段是通用的,和/或您从正确标准化它们中获益(例如,您希望根据这些字段进行选择),请将它们移动到标准化列中.