jurasciix/objeckson

This package is abandoned and no longer maintained. No replacement package was suggested.
There is no license information available for the latest version (1.0.5) of this package.

Maintainers

Package info

github.com/JuraSciix/Objeckson

pkg:composer/jurasciix/objeckson

Statistics

Installs: 47

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

1.0.5 2025-11-05 09:27 UTC

This package is auto-updated.

Last update: 2026-03-16 23:44:08 UTC


README

Objeckson - это библиотека для отображения динамических ассоциативных структур (которые, как правило, хранятся в формате JSON) на объекты PHP.

Библиотека устарела и больше не поддерживается. Рекомендуется рассмотреть замену: JuraSciix/PhpDataMapper

Возможности и 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);