%PDF- %PDF-
Direktori : /home/graphicd/public_html/vebto/vendor/kreait/firebase-php/src/Firebase/Util/ |
Current File : /home/graphicd/public_html/vebto/vendor/kreait/firebase-php/src/Firebase/Util/JSON.php |
<?php declare(strict_types=1); namespace Kreait\Firebase\Util; use Kreait\Firebase\Exception\InvalidArgumentException; use Throwable; class JSON { /** * Wrapper for JSON encoding that throws when an error occurs. * * Shamelessly copied from Guzzle. * * @internal * * @see \GuzzleHttp\json_encode() * * @param mixed $value The value being encoded * @param int|null $options JSON encode option bitmask * @param int|null $depth Set the maximum depth. Must be greater than zero * * @throws InvalidArgumentException if the JSON cannot be encoded */ public static function encode($value, ?int $options = null, ?int $depth = null): string { $options = $options ?? 0; $depth = $depth ?? 512; $json = \json_encode($value, $options, $depth); if (\json_last_error() !== \JSON_ERROR_NONE) { throw new InvalidArgumentException( 'json_encode error: '.\json_last_error_msg() ); } return (string) $json; } /** * Wrapper for json_decode that throws when an error occurs. * * Shamelessly copied from Guzzle. * * @internal * * @see \GuzzleHttp\json_encode() * * @param string $json JSON data to parse * @param bool|null $assoc When true, returned objects will be converted into associative arrays * @param int|null $depth User specified recursion depth * @param int|null $options Bitmask of JSON decode options * * @throws \InvalidArgumentException if the JSON cannot be decoded * * @return mixed */ public static function decode($json, $assoc = null, $depth = null, $options = null) { $data = \json_decode($json, $assoc ?? false, $depth ?? 512, $options ?? 0); if (\json_last_error() !== \JSON_ERROR_NONE) { throw new InvalidArgumentException( 'json_decode error: '.\json_last_error_msg() ); } return $data; } /** * Returns true if the given value is a valid JSON string. * * @internal * * @param mixed $value */ public static function isValid($value): bool { try { self::decode($value); return true; } catch (Throwable $e) { return false; } } /** * @internal * * @param mixed $value */ public static function prettyPrint($value): string { return self::encode($value, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES); } }