Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
updraftplus
/
vendor
/
guzzle
/
guzzle
/
src
/
Guzzle
/
Service
/
Description
:
SchemaFormatter.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace Guzzle\Service\Description; use Guzzle\Common\Exception\InvalidArgumentException; /** * JSON Schema formatter class */ class SchemaFormatter { /** @var \DateTimeZone */ protected static $utcTimeZone; /** * Format a value by a registered format name * * @param string $format Registered format used to format the value * @param mixed $value Value being formatted * * @return mixed */ public static function format($format, $value) { switch ($format) { case 'date-time': return self::formatDateTime($value); case 'date-time-http': return self::formatDateTimeHttp($value); case 'date': return self::formatDate($value); case 'time': return self::formatTime($value); case 'timestamp': return self::formatTimestamp($value); case 'boolean-string': return self::formatBooleanAsString($value); default: return $value; } } /** * Create a ISO 8601 (YYYY-MM-DDThh:mm:ssZ) formatted date time value in UTC time * * @param string|integer|\DateTime $value Date time value * * @return string */ public static function formatDateTime($value) { return self::dateFormatter($value, 'Y-m-d\TH:i:s\Z'); } /** * Create an HTTP date (RFC 1123 / RFC 822) formatted UTC date-time string * * @param string|integer|\DateTime $value Date time value * * @return string */ public static function formatDateTimeHttp($value) { return self::dateFormatter($value, 'D, d M Y H:i:s \G\M\T'); } /** * Create a YYYY-MM-DD formatted string * * @param string|integer|\DateTime $value Date time value * * @return string */ public static function formatDate($value) { return self::dateFormatter($value, 'Y-m-d'); } /** * Create a hh:mm:ss formatted string * * @param string|integer|\DateTime $value Date time value * * @return string */ public static function formatTime($value) { return self::dateFormatter($value, 'H:i:s'); } /** * Formats a boolean value as a string * * @param string|integer|bool $value Value to convert to a boolean 'true' / 'false' value * * @return string */ public static function formatBooleanAsString($value) { return filter_var($value, FILTER_VALIDATE_BOOLEAN) ? 'true' : 'false'; } /** * Return a UNIX timestamp in the UTC timezone * * @param string|integer|\DateTime $value Time value * * @return int */ public static function formatTimestamp($value) { return (int) self::dateFormatter($value, 'U'); } /** * Get a UTC DateTimeZone object * * @return \DateTimeZone */ protected static function getUtcTimeZone() { // @codeCoverageIgnoreStart if (!self::$utcTimeZone) { self::$utcTimeZone = new \DateTimeZone('UTC'); } // @codeCoverageIgnoreEnd return self::$utcTimeZone; } /** * Perform the actual DateTime formatting * * @param int|string|\DateTime $dateTime Date time value * @param string $format Format of the result * * @return string * @throws InvalidArgumentException */ protected static function dateFormatter($dateTime, $format) { if (is_numeric($dateTime)) { return gmdate($format, (int) $dateTime); } if (is_string($dateTime)) { $dateTime = new \DateTime($dateTime); } if ($dateTime instanceof \DateTime) { return $dateTime->setTimezone(self::getUtcTimeZone())->format($format); } throw new InvalidArgumentException('Date/Time values must be either a string, integer, or DateTime object'); } }