HEX
Server: LiteSpeed
System: Linux dune179.sitesanctuary.org 5.14.0-427.40.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 16 07:08:17 EDT 2024 x86_64
User: h278792 (1197)
PHP: 8.1.29
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/h278792/public_html/disc/vendor/twilio/sdk/src/Twilio/Serialize.php
<?php

namespace Twilio;

class Serialize {

    private static function flatten(array $map, array $result = [], array $previous = []): array {
        foreach ($map as $key => $value) {
            if (\is_array($value)) {
                $result = self::flatten($value, $result, \array_merge($previous, [$key]));
            } else {
                $result[\implode('.', \array_merge($previous, [$key]))] = $value;
            }
        }

        return $result;
    }

    public static function prefixedCollapsibleMap($map, string $prefix): array {
        if ($map === null || $map === Values::NONE) {
            return [];
        }

        $flattened = self::flatten($map);
        $result = [];
        foreach ($flattened as $key => $value) {
            $result[$prefix . '.' . $key] = $value;
        }

        return $result;
    }

    public static function iso8601Date($dateTime): string {
        if ($dateTime === null || $dateTime === Values::NONE) {
            return Values::NONE;
        }

        if (\is_string($dateTime)) {
            return $dateTime;
        }

        $utcDate = clone $dateTime;
        $utcDate->setTimezone(new \DateTimeZone('+0000'));
        return $utcDate->format('Y-m-d');
    }

    public static function iso8601DateTime($dateTime): string {
        if ($dateTime === null || $dateTime === Values::NONE) {
            return Values::NONE;
        }

        if (\is_string($dateTime)) {
            return $dateTime;
        }

        $utcDate = clone $dateTime;
        $utcDate->setTimezone(new \DateTimeZone('+0000'));
        return $utcDate->format('Y-m-d\TH:i:s\Z');
    }

    public static function booleanToString($boolOrStr) {
        if ($boolOrStr === null || \is_string($boolOrStr)) {
            return $boolOrStr;
        }

        return $boolOrStr ? 'true' : 'false';
    }

    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);
    }

}