【发布时间】:2017-03-14 08:53:28
【问题描述】:
对于我正在编写的库,我希望能够模拟 exit PHP 函数。
我尝试使用php-mock 来提供exit 的命名空间版本,类似于
namespace MyNamespace;
function exit()
{
// my mocked version of the function
}
但这会给解析器带来问题,它会抛出以下ParseError:syntax error, unexpected 'exit' (T_EXIT), expecting '('。
有没有其他方法可以模拟内置函数而不会导致解析问题?我应该尝试用BetterReflection 之类的东西修改 AST 吗?
【问题讨论】:
-
exit 是一种语言结构,不能模拟它。
-
Exit 是一种语言结构,而不是函数。因此,我认为您无法替换它。
-
我认为即使这个问题的前提是一个有缺陷的假设,它确实值得 +1,特别是考虑到 php 标签中的信噪比。
标签: php unit-testing reflection abstract-syntax-tree monkeypatching