以编程方式禁用特定的PHP函数进行测试

时间:2012-02-21 15:41:36

标签: php

我有一个函数,如果cURL在系统上不可用,则使用cURL发出的HTTP请求会回退到file_get_contents()

我想为这个函数编写单元测试(利用PHPUnit),其中cURL可用于某些测试,而不适用于其他测试。

是否可以以编程方式禁用PHP函数,例如curl_init()

我知道我可以使用php.ini中的disable_functions设置,但我希望找到一种方法来进行单元测试,而无需在两次运行之间重新配置PHP。

1 个答案:

答案 0 :(得分:4)

我认为您可以使用runkit_function_remove删除任何已定义的函数:

runkit_function_remove('curl_init');

并且,根据文档:

  

注意:默认情况下,只能删除,重命名或修改用户空间功能。要覆盖内部功能,您必须在runkit.internal_override中启用php.ini设置。

相关问题