Intereting Posts
Как я могу использовать значение переменной как константу? Является ли 128 Мбайт памяти PHP слишком много? Извлечь URL из строки Приложение Facebook на странице PHP – $ _SESSION не поддерживается, когда пользователь закрывает окно своего браузера Сравнение массивов PHP с использованием ссылок на память Laravel Eloquent сравнивает дату с поля datetime Автоматизировать разрешение Entrust с доступом к параметрам имени маршрута и проверить разрешение пользователя Поиск функции php только для адреса электронной почты obfuscator Как улучшить мой редактор изображений php для поддержки альфа-PNG и прозрачных GIF-файлов Получить максимальное значение из элемента в многомерном массиве? Как я могу отправить ответ json в контроллере symfony2 Соответствие суммы значений в строке Значение по умолчанию переменных в PHP? Вставить теги скриптов tinymce используя «?» в SVG href

Программно отключить определенные функции PHP для тестирования

У меня есть функция, которая делает HTTP-запросы с cURL, которая возвращается к file_get_contents() если cURL недоступен в системе.

Я хотел бы написать модульные тесты для этой функции (используя PHPUnit), где cURL доступен для некоторых тестов и недоступен для других.

Можно ли программно отключить функции PHP, такие как curl_init() ?

Я знаю, что могу использовать параметр disable_functions в php.ini, но я надеялся найти способ проведения модульных тестов, не перенастраивая PHP между прогонами.

Вы можете использовать runkit_function_remove для удаления какой-либо определенной функции, я думаю:

 runkit_function_remove('curl_init'); 

И, согласно документации:

Примечание. По умолчанию только функции пользовательского пространства могут быть удалены, переименованы или изменены. Чтобы переопределить внутренние функции, вы должны включить параметр runkit.internal_override в php.ini .