У меня есть библиотека функций, которые иногда я просто не хочу вызывать во время тестирования (как правило, обновления базы данных). Если у меня есть, например, несколько различных функций обновления базы данных, которые находятся по всему коду. вместо того, чтобы комментировать код, я просто создаю специальный класс (например, класс foo {}). Определите глобальную переменную (например, $ DEBUG) и фиктивную функцию (например, функцию dummy {}).
Внутри foo определите все (публичные статические) функции, которые вам нужно имитировать, как
$ fn = isset ($ DEBUG)? «пустышка»: «реальная функция»;
return call_user_func_array ($ fn, func_get_args ());
Кроме того, теперь у вас есть преимущества, связанные с другими вещами, такими как регистрация вызовов и параметров.
Затем просто замените все ваши вызовы real_function (...) на foo :: real_function (...). Обычно простой поиск / замена (или оставить его там; в зависимости от того, что происходит в функции и как часто она вызывается, накладные расходы могут не иметь значения).