2011-12-22 2 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()를 사용하여 이탈 메소드를 무시하는 예제를 제공했습니다. 행운없이 set_setcookie_overload()를 사용하여 setcookie()에 대해 동일한 작업을 수행하려고합니다.

+1

내가 이기에, setcookie'에 관한 아무것도 보지 않았다()'링크에 당신이 제공되며,'set_setcookie_overload'에 대한 검색이 질문에 단지 하나의 링크를 얻었다. –

+0

David, test_helpers 확장 기능이 setcookie와 같은 PHP 내장 함수를 재정의 할 수있는 것처럼 들립니다. 언급 된 링크에서 저자는 set_exit_overload를 사용하여 이탈 메서드를 재정의하는 예제를 제공했습니다. 행운없이 set_setcookie_overload()를 사용하여 setcookie()에 대해 동일한 작업을 수행하려고합니다. 명확하지 않은 것에 대해 유감스럽게 생각합니다. – pshah

+0

오, 이제 알겠습니다. 예를보고 쿠키를 검색했지만이 방법이 더 일반적입니다. 확장 기능이 CLI 또는 Apache를 통해 어떻게 작동하는지 확인 했습니까? 그들은 보통 별도의 설정이 있습니다. '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

덕분에 edorian, 나는 운이 빠진 것 같습니다. 나는 다른 접근법을 찾아야 할 것이다. – pshah

+0

자신을 수정하고 컴파일하는 것이 그리 어렵지 않을 수도 있습니다. 그렇지 않으면 끌어 오기 요청을 제출하십시오. 나는 휴가 중이거나 내가 직접 시험해보고 싶다. :) –

관련 문제