我有一個功能,使HTTP請求與捲曲是回落到file_get_contents()
如果捲曲是不可用的系統上。編程禁用特定PHP函數測試
我想編寫該功能(利用PHPUnit的)單元測試,其中捲曲適用於某些測試,不適用於其他。
是否有可能以編程方式禁用PHP函數,如curl_init()
?
我知道我可以在php.ini中使用disable_functions
設置,但是我希望找到一種方法來在單元測試之間進行單元測試,而無需在運行之間重新配置PHP。
我有一個功能,使HTTP請求與捲曲是回落到file_get_contents()
如果捲曲是不可用的系統上。編程禁用特定PHP函數測試
我想編寫該功能(利用PHPUnit的)單元測試,其中捲曲適用於某些測試,不適用於其他。
是否有可能以編程方式禁用PHP函數,如curl_init()
?
我知道我可以在php.ini中使用disable_functions
設置,但是我希望找到一種方法來在單元測試之間進行單元測試,而無需在運行之間重新配置PHP。
您可以使用runkit_function_remove
,以消除任何定義的功能,我想:
runkit_function_remove('curl_init');
而且,按照文檔:
注:默認情況下,只有用戶空間的功能可以被移除,重命名或修改。爲了覆蓋內部功能,您必須啓用
php.ini
的runkit.internal_override
設置。
,將工作,謝謝!我目前沒有安裝runkit,但我會稍微安排它。 – Brad 2012-02-21 15:46:17
是否'的ini_set( 'disable_functions選項', '...');'工作? – Crozin 2012-02-21 15:43:16
@Crozin,不,'disable_functions'只適用於php.ini。 http://www.php.net/manual/en/ini.list.php – Brad 2012-02-21 15:44:27