小编all*_*ery的帖子

如何序列化/反序列化SimpleXML对象?

我已经看到了一些处理序列化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中触发.

php serialization object

13
推荐指数
1
解决办法
2万
查看次数

PHPUnit Zend框架控制器测试 - 无法断言上次使用的控制器<"错误"> - 显示错误

我们目前正在对zend框架控制器进行单元测试.

(我已经抽象了一下这个代码示例,但想法是一样的....)

我们很高兴设法使测试失败,并显示错误消息

Failed asserting last controller used <"error"> ....

通过测试:

$this->dispatch('/controller/action/param');
$this->assertController('controller');
$this->assertAction('action');
Run Code Online (Sandbox Code Playgroud)

所以在这个例子中,我如何得到真正的错误消息到泡泡到PHPUnit,即如果控制器中有错误,我想知道它而不是调用错误控制器.

如果我resources.frontController.params.noErrorHandler = 1在application.ini中设置,即使出现错误,测试也会通过,因为控制器和操作仍然会发生,但只输出任何内容(我知道我可以在输出中查找断言,但这不是重点 - 我想要原始错误).

我试过打开了

convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true" 
Run Code Online (Sandbox Code Playgroud)

在phpunit.xml中,也没有快乐.

任何指针都将非常感激.

我希望所有这一切都有意义!?

非常感谢.

phpunit zend-framework

4
推荐指数
1
解决办法
1913
查看次数

标签 统计

object ×1

php ×1

phpunit ×1

serialization ×1

zend-framework ×1