| Server IP : 89.108.64.180 / Your IP : 216.73.216.46 Web Server : Apache/2.4.41 (Ubuntu) System : Linux 89-108-64-180.cloudvps.regruhosting.ru 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : www-root ( 1010) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/otel-vershina.ru/dup-installer/libs/Snap/JsonSerialize/ |
Upload File : |
<?php
/**
*
* @package Duplicator
* @copyright (c) 2021, Snapcreek LLC
*
*/
namespace Duplicator\Libs\Snap\JsonSerialize;
use Duplicator\Libs\Snap\SnapJson;
use Duplicator\Libs\Snap\SnapLog;
use Exception;
/**
* This class serializes and deserializes a variable in json keeping the class type and saving also private objects
*/
class JsonSerialize extends AbstractJsonSerializeObjData
{
/**
* Return json string
*
* @param mixed $value value to serialize
* @param integer $flags json_encode flags
* @param integer $depth json_encode depth
*
* @link https://www.php.net/manual/en/function.json-encode.php
*
* @return string|bool Returns a JSON encoded string on success or false on failure.
*/
public static function serialize($value, $flags = 0, $depth = 512)
{
return SnapJson::jsonEncode(self::valueToJsonData($value, $flags), $flags, $depth);
}
/**
* Unserialize from json
*
* @param string $json json string
* @param integer $depth json_decode depth
* @param integer $flags json_decode flags
*
* @link https://www.php.net/manual/en/function.json-decode.php
*
* @return mixed
*/
public static function unserialize($json, $depth = 512, $flags = 0)
{
$publicArray = (version_compare(PHP_VERSION, '5.4', '>=') ?
json_decode($json, true, $depth, $flags) :
json_decode($json, true, $depth)
);
return self::jsonDataToValue($publicArray);
}
/**
* Unserialize json on passed object
*
* @param string $json json string
* @param object|string $obj object to fill or class name
* @param integer $depth json_decode depth
* @param integer $flags json_decode flags
*
* @link https://www.php.net/manual/en/function.json-decode.php
*
* @return object
*/
public static function unserializeToObj($json, $obj, $depth = 512, $flags = 0)
{
if (is_object($obj)) {
} elseif (is_string($obj) && class_exists($obj)) {
$obj = self::getObjFromClass($obj);
} else {
throw new Exception('invalid obj param');
}
$value = (version_compare(PHP_VERSION, '5.4', '>=') ?
json_decode($json, true, $depth, $flags) :
json_decode($json, true, $depth)
);
if (!is_array($value)) {
throw new Exception('json value isn\'t an array VALUE: ' . SnapLog::v2str($value));
}
return self::fillObjFromValue($value, $obj);
}
}