如何建立一例外记录仪系统在PHP,可以有不同的记录器实现,例如文件/DB和可测试

StackOverflow https://stackoverflow.com/questions/4031552

我要建一个PHP库引发的各种自定义的例外情况时遇到的错误。我需要记录的那些例外情况,并提供各种实的记录,因此他们可能被记录在文件或数据库。

例外情况的需要加以记录他们是否被捉住,或者没有,因此,排除实施任何这在一定义例外处理程序。因此记录需要被触发的构造的定义的异常类本身。

我还需要单元的测试,进行,例外触发的记录。

什么是最好的方式异常的对象具有的访问记录仪的对象?

意见/建议,我已经包括:

1)注的选择记录仪的实施对象(或这是嘲笑的对象当中测试的异常类)成的对象,把例外,而这些对象将注入记录仪的对象入的构造时投掷的每一个新的例外。这可能有点乱,虽然有记录仪的对象,正在通过周围所有的地方。

2)使用的策略或者工厂案(我已经读了关于这个概念,但我不知道该如何来实现这些在这种情况下)。

有帮助吗?

解决方案

那将是

我认为方法的例外情况的有记录仪,而不是使用一个例外处理程序是有缺陷的。海事组织,它违反了分离的问题和例外情况应不包含记录的逻辑。然而,如果已经有,您可以创建一个自定义的例外,有一个记录仪合成为一个静态部件,但是,仍然会离开你有没有记录的所有例外情况不子类从这种例外。你可以改变的行为PHP的基例外 runkit 但是,这是肮脏的黑巫术魔法monkeypatching.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top