aktuba/json-mapper

OOP container for json/array

0.1.2 2019-12-01 17:37 UTC

This package is auto-updated.

Last update: 2024-04-29 04:19:53 UTC


README

Библиотека для преобразования массива данных в дерево объектов. Создано для облегчения реализаций json-api.

Возможности:

  • ООП-интерфейс для данных
  • Автоматическая обработка вложенных структур с поддержкой объектов

Требовния для использования

  • PHP 7.1 и выше

Установка

$ composer require aktuba/json-mapper

Пример использования:

<?php declare(strict_types=1);

use aktuba\JsonMapper\JsonMapper;

require __DIR__.'/../vendor/autoload.php';

$jsonData = <<<JSON
{
	"users": [
		{
			"name": "John",
			"surname": "Smith",
			"age": 24
		},
		{
			"name": "Marry",
			"surname": "Cary",
			"age": 22
		}
	],
	"meta": {
		"result": true,
		"version": "1.0",
		"took": "0.035"
	}
}
JSON;

class User extends JsonMapper
{

	protected const PROPERTIES = [
		'name' => 'string',
		'surname' => 'string',
		'age' => 'int',
	];

}

class Meta extends JsonMapper
{

	protected const PROPERTIES = [
		'result' => 'bool',
		'version' => 'string',
		'took' => 'float',
	];

}

class Data extends JsonMapper
{

	protected const PROPERTIES = [
		'users' => 'User[]',
		'meta' => 'Meta',
	];

}

$data = new Data(json_decode($jsonData, true));
var_dump($data);

Больше примеров в examples