2011-12-22 28 views
2

私は、test_helpers PECL拡張を使用してsetcookieの実装を無効にしようとしています。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()を使用してexitメソッドをオーバーライドする例を示しました。 setcookie()でset_setcookie_overload()を使って同じことをしようとしています。

+1

私はいったんsetcookie 'に関する何も表示されませんでした()'のリンクであなたが提供され、 'set_setcookie_overload'の検索は、この質問へのシングルリンクのみをもたらしました。 –

+0

David、test_helpers拡張機能がsetcookieのような組み込みのPHP関数をオーバーライドできるように思えます。上記のリンクでは、set_exit_overloadを使用してexitメソッドをオーバーライドする例を示しました。 setcookie()でset_setcookie_overload()を使って同じことをしようとしています。申し訳ありませんが明確ではありません。 – pshah

+0

ああ、私は今参照してください。私は例を見てクッキーを探しましたが、これはより一般的です。拡張機能がCLIまたはApache経由でどのように動作しているかをどのように確認しましたか?彼らは通常別のconfigsを持っています。対話的に 'php -a'を使って動作しますか? –

答えて

1

利用可能な機能は、ソースover at githubにあります。 PHP_FUNCTIONで始まるものはすべて、ユーザーが呼び出して公開します。

だからそうです。 php-test-helperにはset_setcookie_overload()がありません。別の回避策を見つける必要があります。

悲しいことに、rename_functionは、内部機能では機能しないためお手伝いできません。

Complete function list of the test_helpers extension

+0

ありがとうエドリアン、私は運が尽きているように聞こえます。私は他のアプローチを探す必要があります。 – pshah

+0

あなた自身を修正してコンパイルするのは難しくありません。それ以外の場合はプルリクエストを送信します。私は休暇中です。または自分で試してみたいと思っています。 :) –

関連する問題