phpunit自定义setcookie实现

问题描述:

我想覆盖setcookie实现使用test_helpers PECL扩展没有任何运气。phpunit自定义setcookie实现

$username = 'test'; 
    set_setcookie_overload(function() { error_log('setcookie called'); return FALSE; }); 
    setcookie('username', $userName, time()+60*60*24*365, '/'); 
    unset_setcookie_overload(); 

我得到这个错误: PHP致命错误:调用未定义功能set_setcookie_overload()

我验证了扩展名与这里的例子正常工作:https://github.com/sebastianbergmann/php-test-helpers

感谢。

更新:为了进一步说明,听起来像test_helpers扩展允许覆盖像setcookie这样的内置PHP函数。在上面的链接中,作者提供了一个使用set_exit_overload()覆盖退出方法的示例。我正在尝试使用set_setcookie_overload()为setcookie()做同样的事情,但没有任何运气。

+1

,我没有看到有关'的setcookie什么()'的链接,您提供的,和'set_setcookie_overload'搜索只产生一个链接到这个问题。 – 2011-12-22 23:28:51

+0

David,听起来像test_helpers扩展允许覆盖像setcookie这样的内置PHP函数。在提到的链接中,作者提供了一个使用set_exit_overload覆盖退出方法的示例。我正在尝试使用set_setcookie_overload()为setcookie()做同样的事情,但没有任何运气。对不起,不清楚。 – pshah 2011-12-22 23:54:03

+0

哦,我现在看到了。我看到了这些示例并搜索了cookie,但这更通用。你是如何通过CLI或Apache验证扩展是如何工作的?他们通常具有不同的配置。它交互使用'php -a'工作吗? – 2011-12-23 04:58:16

可用的功能可在源over at github中找到。所有以PHP_FUNCTION开头的信息都会暴露给用户来致电。

所以是的。在php-test-helpers中没有set_setcookie_overload()。你必须找到另一种解决方法。

遗憾的是rename_function不能帮助你,因为它不适用于内部功能。

Complete function list of the test_helpers extension

+0

谢谢edorian,这听起来像我运气不好。我不得不寻找其他方法。 – pshah 2011-12-27 23:52:04

+0

修改和编译自己可能并不难。否则,请提交拉取请求。我正在度假,或者我很想好好尝试一下。 :) – 2011-12-28 23:10:45