要求对此提出体面的想法:
我想在 PHP 代码中实现一些机制,该机制可以运行任何外部代码并在其中一个包含失败时调用回调函数(include
, require
+ *_once
)。
外部代码意味着正在执行的代码不是我编写的,也无法控制它。它包含在测试中。因此,深入了解包含失败的详细信息是有帮助的。
我遇到了一个问题,当发生 PHP 致命错误时,似乎不可能有回调。
到目前为止我尝试了什么:
- 通过注册错误处理程序
set_error_handler
- 不适用于致命错误。 - 使用方法创建了一个对象实例
__destruct()
- 不会因致命错误而被调用。 - 注册了一个关闭函数 - 不调用致命错误。
在其中任何一个中,我只想获取一个debug_backtrace
然后使用给定的信息。
所以很快的问题是:如何从 PHP 代码中跟踪失败的文件包含然后调用一个函数。
从我最近的尝试和搜索中,我担心这个问题的答案是否定的,所以任何有见地的东西都会受到高度赞赏。即使您的回答只会加强“不可能”这一点。
此外,如果可以找出要包含哪个文件也很有帮助,因此至少可以在包含(失败与否)之前创建一个调试输出。
评论:
- 首选无扩展。但是,如果存在某些东西,我也很想知道。
- 外部代码意味着正在执行的代码不是我编写的,也无法控制它。它包含在测试中。因此,深入了解包含失败的详细信息是有帮助的。
有关的:
- 如何让 PHP 在错误时产生回溯?
- set_error_handler() 不适用于致命错误(
register_shutdown_function
+error_get_last
)