GraphQL\Error\FormattedError::createFromException PHP Метод

createFromException() публичный статический Метод

public static createFromException ( Exception $e ) : array
$e Exception
Результат array
    public static function createFromException(\Exception $e)
    {
        return ['message' => $e->getMessage(), 'trace' => self::toSafeTrace($e->getTrace())];
    }

Usage Example

Пример #1
0
    $appContext->rootUrl = 'http://localhost:8080';
    $appContext->request = $_REQUEST;
    // Parse incoming query and variables
    if (isset($_SERVER['CONTENT_TYPE']) && strpos($_SERVER['CONTENT_TYPE'], 'application/json') !== false) {
        $raw = file_get_contents('php://input') ?: '';
        $data = json_decode($raw, true);
    } else {
        $data = $_REQUEST;
    }
    $data += ['query' => null, 'variables' => null];
    if (null === $data['query']) {
        $data['query'] = '{hello}';
    }
    // GraphQL schema to be passed to query executor:
    $schema = new Schema(['query' => Types::query()]);
    $result = GraphQL::execute($schema, $data['query'], null, $appContext, (array) $data['variables']);
    // Add reported PHP errors to result (if any)
    if (!empty($_GET['debug']) && !empty($phpErrors)) {
        $result['extensions']['phpErrors'] = array_map(['GraphQL\\Error\\FormattedError', 'createFromPHPError'], $phpErrors);
    }
    $httpStatus = 200;
} catch (\Exception $error) {
    $httpStatus = 500;
    if (!empty($_GET['debug'])) {
        $result['extensions']['exception'] = FormattedError::createFromException($error);
    } else {
        $result['errors'] = [FormattedError::create('Unexpected Error')];
    }
}
header('Content-Type: application/json', true, $httpStatus);
echo json_encode($result);