3

在为 PHP 设置白名单时遇到以下问题:

我在 phpunit xml 中设置了以下过滤器:

<filter>
    <whitelist>
        <directory suffix=".php">../..</directory>
        <exclude>
            <directory>../../cache</directory>
            <directory>../../public_html</directory>
            <directory>../../temp</directory>
            <directory>../../tools</directory>
        </exclude>
    </whitelist>
</filter>

没有那个白名单,一切正常,但是当我把它放进去时,系统崩溃了,因为它试图包含所有文件。这使得它包含一个具有 require_once 的文件,因此它会使应用程序崩溃。

编辑在启动时系统定义了一些常量。由于在包含创建白名单的所有数据时未定义这些常量,因此它会尝试访问一个不存在的文件夹(PHP 假定该常量是一个字符串),因此 require_once 失败,并且考虑到它是一个要求,它崩溃了。

此外,如果它有任何帮助,白名单被用于将它与Selenium一起使用。也许这就是问题的根源?

4

1 回答 1

4

为了收集代码覆盖率信息,系统必须要求所有文件,这是预期的行为。(技术上不需要,但确实如此

如果您正在使用require_once这应该不是问题,因为 phpunit 也使用 a"_once"来要求文件。

我们在充满 require_once 语句的代码库上使用白名单,我遇到的唯一问题是在两个地方定义了一个类。

于 2011-06-21T14:12:35.140 回答