防止在php中assert失败时提交数据库


Prevent database commit on assert failure in php

为了对我的代码进行完整性测试,我在代码的不同位置放置了断言。

我希望无论何时命中断言,数据库事务都不应该完成(即数据不应该提交到数据库,而是应该回滚)。

我找不到任何干净的方法来实现这一点。

我正在使用代码点火器框架。

知道如何实现这一点吗?

功能不应该是断言的一部分。如果是这样,那么在生产模式下,当禁用断言时,该功能将被扭曲。

我们可以在assert失败时执行额外的数据库操作来记录和跟踪错误的更多细节,但不应该中止/干扰外部事务。

断言应该只作为调试特性使用。您可以使用它们进行安全性检查,测试应该始终为TRUE的条件,如果不为TRUE则指示一些编程错误,或者检查某些功能(如扩展函数或某些系统限制和功能)的存在。

断言不应该用于正常的运行时操作,如输入参数检查。根据经验,如果没有激活断言检查,您的代码应该始终能够正确工作。

详细