'No error', JSON_ERROR_DEPTH => 'Maximum stack depth exceeded', JSON_ERROR_STATE_MISMATCH => 'State mismatch (invalid or malformed JSON)', JSON_ERROR_CTRL_CHAR => 'Control character error, possibly incorrectly encoded', JSON_ERROR_SYNTAX => 'Syntax error', JSON_ERROR_UTF8 => 'Malformed UTF-8 characters, possibly incorrectly encoded' ); $error = json_last_error(); return isset($errors[$error]) ? $errors[$error] : 'Unknown error'; } } // function not autoloaded in PHP, thus its a good place for them if (!function_exists('codecept_debug')) { function codecept_debug($data) { \Codeception\Util\Debug::debug($data); } } if (!function_exists('codecept_root_dir')) { function codecept_root_dir($appendPath = '') { return \Codeception\Configuration::projectDir() . $appendPath; } } if (!function_exists('codecept_output_dir')) { function codecept_output_dir($appendPath = '') { return \Codeception\Configuration::outputDir() . $appendPath; } } if (!function_exists('codecept_log_dir')) { function codecept_log_dir($appendPath = '') { return \Codeception\Configuration::outputDir() . $appendPath; } } if (!function_exists('codecept_data_dir')) { function codecept_data_dir($appendPath = '') { return \Codeception\Configuration::dataDir() . $appendPath; } } if (!function_exists('codecept_relative_path')) { function codecept_relative_path($path) { return \Codeception\Util\PathResolver::getRelativeDir( $path, \Codeception\Configuration::projectDir(), DIRECTORY_SEPARATOR ); } }