private static function spyOnFunction($function) { if (!function_exists($function)) { throw new \InvalidArgumentException("The {$function} function doesn't exist."); } $newFunctionName = uniqid($function, true); uopz_rename($function, $newFunctionName); $spy = new Spy($newFunctionName); $handler = self::createHandler($spy); uopz_function($function, $handler); self::$investigations[$function] = true; return $spy; }
// replace time() uopz_rename("time", "original_time"); uopz_function("time", function () use($travelName) { return original_time() + $_ENV[$travelName]; }); // replace strtotime() uopz_rename("strtotime", "original_strtotime"); uopz_function("strtotime", function ($time, $now = 0) { if (isset($now) && !empty($now)) { return original_strtotime($time, $now); } else { return original_strtotime($time, time()); } }); // replace date() uopz_rename("date", "original_date"); uopz_function("date", function ($format, $timestamp = 0) { if (isset($timestamp) && !empty($timestamp)) { return original_date($format, $timestamp); } else { return original_date($format, time()); } }); return true; }; $travelByRunkit = function () use($travelName) { // replace time() runkit_function_rename("time", "original_time"); runkit_function_add("time", "", <<<FUNC \t return original_time() + \$_ENV["{$travelName}"]; FUNC
public static function teardownAfterClass() { uopz_rename("myfwrite", "fwrite"); }