20250629 1.1 Stable
This commit is contained in:
@@ -39,6 +39,9 @@ trait JsonReWriterReadTrait
|
||||
*/
|
||||
public function Read (string $key, mixed $default = null): mixed
|
||||
{
|
||||
// Подготавливаем ключ
|
||||
$key = $this->PrepareKey($key);
|
||||
|
||||
// Проверяем, существует ли ключ
|
||||
if (!$this->IsKeyExists($key))
|
||||
// - если нет, то возвращаем значение по умолчанию
|
||||
@@ -53,7 +56,7 @@ trait JsonReWriterReadTrait
|
||||
// Для каждого ключа до предпоследнего
|
||||
for ($i = 0; $i < count($keys) - 1; $i++)
|
||||
// - переходим ко вложенному массиву
|
||||
$current = &$current[$keys[$i]];
|
||||
$current = $current[$keys[$i]];
|
||||
|
||||
// Возвращаем значение последнего ключа и если его нет, то возвращаем значение по умолчанию
|
||||
return $current[$keys[count($keys) - 1]] ?? $default;
|
||||
@@ -95,7 +98,27 @@ trait JsonReWriterReadTrait
|
||||
*/
|
||||
public function ReadArray (string $key, array $default = []): array
|
||||
{
|
||||
return (array)$this->Read($key, $default);
|
||||
// Получаем значение ключа JSON
|
||||
$serializedDef = json_encode($default);
|
||||
|
||||
// Читаем значение ключа JSON
|
||||
$value = $this->ReadString($key, $serializedDef);
|
||||
|
||||
// Десериализуем значение ключа JSON
|
||||
return json_decode($value, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Читает значение ключа JSON как строку.
|
||||
*
|
||||
* @param string $key Ключ JSON.
|
||||
* @param string $default Значение по умолчанию.
|
||||
*
|
||||
* @return string Значение ключа JSON или значение по умолчанию.
|
||||
*/
|
||||
public function ReadString (string $key, string $default = ""): string
|
||||
{
|
||||
return (string)$this->Read($key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -108,7 +131,14 @@ trait JsonReWriterReadTrait
|
||||
*/
|
||||
public function ReadObject (string $key, object $default): object
|
||||
{
|
||||
return (object)$this->Read($key, $default);
|
||||
// Получаем значение ключа JSON
|
||||
$serializedDef = json_encode($default);
|
||||
|
||||
// Читаем значение ключа JSON
|
||||
$value = $this->ReadString($key, $serializedDef);
|
||||
|
||||
// Десериализуем значение ключа JSON
|
||||
return json_decode($value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -140,17 +170,4 @@ trait JsonReWriterReadTrait
|
||||
// Возвращаем объект
|
||||
return $instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Читает значение ключа JSON как строку.
|
||||
*
|
||||
* @param string $key Ключ JSON.
|
||||
* @param string $default Значение по умолчанию.
|
||||
*
|
||||
* @return string Значение ключа JSON или значение по умолчанию.
|
||||
*/
|
||||
public function ReadString (string $key, string $default = ""): string
|
||||
{
|
||||
return (string)$this->Read($key, $default);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user