PHP 5.4 與 php-test-helpers

先給連結,PHP 5.4 可以編的版本在這裡:github.com/gslin/php-test-helpers,clone 下來後的安裝方法是:

phpize
./configure
make
make install

另外自己增加 extensions.ini

extension=test_helpers.so

主要是 PHP 內部的資料結構有變動,本來存取的方式要改掉。發了 pull request 但不知道作者會不會收,如果有需要的人可以自己先裝。

會用到 php-test-helpers 是因為寫 test case 的時候要換掉整個 HttpRequest,而 RunKit 不能換系統的 HttpRequest,所以找了不少 extension 發現 php-test-helpers 可以用。

換法是這樣:

set_new_overload(function($name){
    if ('HttpRequest' == $name) {
        return 'My_HttpRequest';
    }   
    return $name;
}); 

拿掉可以直接呼叫 unset_new_overload(); 整個拔乾淨...