jurasciix / objeckson
Installs: 36
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/jurasciix/objeckson
Requires
- php: ^8.1
- nette/utils: v2.5.7
- phpstan/phpdoc-parser: 1.26.0
Requires (Dev)
- phpunit/phpunit: ^10
This package is auto-updated.
Last update: 2025-12-05 11:07:24 UTC
README
Objeckson - это библиотека для отображения динамических ассоциативных структур (которые, как правило, хранятся в формате JSON) на объекты PHP.
Возможности и roadmap
- Десериализовывать массивы
- Отображать на перечисления
- Анализировать обобщенные типы
- Работать с nullable-типами
- Пользовательские сеттеры
- Анализировать array-shapes: array{foo: Foo, bar: Bar}
- Значения по умолчанию для Readonly свойств
- Отображать на объекты STD: DateTime, SplFixedArray, etc...
- Комбинации прямо отображаемых типов (примитивных): string|int|Foo
- OneOf
Установка
Требования:
- PHP ≥ 8.1
- Composer
Установка посредством composer:
composer require jurasciix/objeckson:^1.0
Быстрый туториал
Следующий код демонстрирует инициализацию объекта, предоставляющего доступ к функциям Objeckson, и десериализацию данных JSON с отображением на объект PHP:
use jurasciix\objeckson\JsonProperty; use jurasciix\objeckson\Optional; use jurasciix\objeckson\Objeckson; #[JsonProperty] class APIResponse { #[Optional] public ?APIError $error = null; #[Optional] public mixed $data = null; } #[JsonProperty] class APIError { public int $code; public string $description; } $responseJSON = <<<JSON { "error": { "code": 1, "description": "Error description" } } JSON; // Инициализируем главный объект $objeckson = new Objeckson(); // Десериализовываем и отображаем данные на объект типа APIResponse. $response = $objeckson->fromJson($responseJSON, APIResponse::class); // Смотрим, что у нас вышло. var_dump($response);