我有一个函数,如果cURL在系统上不可用,则使用cURL发出的HTTP请求会回退到file_get_contents()
。
我想为这个函数编写单元测试(利用PHPUnit),其中cURL可用于某些测试,而不适用于其他测试。
是否可以以编程方式禁用PHP函数,例如curl_init()
?
我知道我可以使用php.ini中的disable_functions
设置,但我希望找到一种方法来进行单元测试,而无需在两次运行之间重新配置PHP。
答案 0 :(得分:4)
我认为您可以使用runkit_function_remove
删除任何已定义的函数:
runkit_function_remove('curl_init');
并且,根据文档:
注意:默认情况下,只能删除,重命名或修改用户空间功能。要覆盖内部功能,您必须在
runkit.internal_override
中启用php.ini
设置。