89 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace Twilio;
 | 
						|
 | 
						|
class Serialize {
 | 
						|
 | 
						|
    private static function flatten($map, $result = array(), $previous = array()) {
 | 
						|
        foreach ($map as $key => $value) {
 | 
						|
            if (is_array($value)) {
 | 
						|
                $result = self::flatten($value, $result, array_merge($previous, array($key)));
 | 
						|
            } else {
 | 
						|
                $result[join(".", array_merge($previous, array($key)))] = $value;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        return $result;
 | 
						|
    }
 | 
						|
 | 
						|
    public static function prefixedCollapsibleMap($map, $prefix) {
 | 
						|
        if (is_null($map) || $map == \Twilio\Values::NONE) {
 | 
						|
            return array();
 | 
						|
        }
 | 
						|
 | 
						|
        $flattened = self::flatten($map);
 | 
						|
        $result = array();
 | 
						|
        foreach ($flattened as $key => $value) {
 | 
						|
            $result[$prefix . '.' . $key] = $value;
 | 
						|
        }
 | 
						|
 | 
						|
        return $result;
 | 
						|
    }
 | 
						|
 | 
						|
    public static function iso8601Date($dateTime) {
 | 
						|
        if (is_null($dateTime) || $dateTime == \Twilio\Values::NONE) {
 | 
						|
            return \Twilio\Values::NONE;
 | 
						|
        }
 | 
						|
 | 
						|
        if (is_string($dateTime)) {
 | 
						|
            return $dateTime;
 | 
						|
        }
 | 
						|
 | 
						|
        $utcDate = clone $dateTime;
 | 
						|
        $utcDate->setTimezone(new \DateTimeZone('UTC'));
 | 
						|
        return $utcDate->format('Y-m-d');
 | 
						|
    }
 | 
						|
 | 
						|
    public static function iso8601DateTime($dateTime) {
 | 
						|
        if (is_null($dateTime) || $dateTime == \Twilio\Values::NONE) {
 | 
						|
            return \Twilio\Values::NONE;
 | 
						|
        }
 | 
						|
 | 
						|
        if (is_string($dateTime)) {
 | 
						|
            return $dateTime;
 | 
						|
        }
 | 
						|
 | 
						|
        $utcDate = clone $dateTime;
 | 
						|
        $utcDate->setTimezone(new \DateTimeZone('UTC'));
 | 
						|
        return $utcDate->format('Y-m-d\TH:i:s\Z');
 | 
						|
    }
 | 
						|
 | 
						|
    public static function booleanToString($boolOrStr) {
 | 
						|
        if (is_null($boolOrStr) || is_string($boolOrStr)) {
 | 
						|
            return $boolOrStr;
 | 
						|
        }
 | 
						|
 | 
						|
        return $boolOrStr ? 'True' : 'False';
 | 
						|
    }
 | 
						|
 | 
						|
    public static function json_object($object) {
 | 
						|
        trigger_error("Serialize::json_object has been deprecated in favor of Serialize::jsonObject", E_USER_NOTICE);
 | 
						|
        return Serialize::jsonObject($object);
 | 
						|
    }
 | 
						|
 | 
						|
    public static function jsonObject($object) {
 | 
						|
        if (is_array($object)) {
 | 
						|
            return json_encode($object);
 | 
						|
        }
 | 
						|
        return $object;
 | 
						|
    }
 | 
						|
 | 
						|
    public static function map($values, $map_func) {
 | 
						|
        if (!is_array($values)) {
 | 
						|
            return $values;
 | 
						|
        }
 | 
						|
        return array_map($map_func, $values);
 | 
						|
    }
 | 
						|
 | 
						|
}
 |