Search by

phpsoftbox / resource

inspector-who

Resource component for the PhpSoftBox framework

Package info

github.com/phpsoftbox/resource

pkg:composer/phpsoftbox/resource

Statistics

Installs: 212

Dependents: 1

Suggesters: 1

Stars: 0

Open Issues: 0

v1.0.0 2026-09-29 10:26 UTC

This package is auto-updated.

Last update: 2026-09-29 11:55:56 UTC


README

Компонент для сериализации данных API через ресурсы и единый envelope.

Установка

composer require phpsoftbox/resource

Быстрый старт

<?php

use PhpSoftBox\Resource\ApiResponse;
use PhpSoftBox\Resource\Resource;

final class UserResource extends Resource
{
    public function toArray(): array
    {
        return [
            'id' => $this->resource['id'],
            'email' => $this->resource['email'],
        ];
    }
}

$user = ['id' => 10, 'email' => 'demo@example.com'];

$response = ApiResponse::success(new UserResource($user));

return $response; // JsonSerializable: meta и errors.fields в JSON всегда объекты

Документация

json_encode($resource) сериализует ресурс через ResourceSerializer (скрытые поля не попадают в JSON), when*/require* вызывают только Closure, а Resource::dropdown() принимает и имя enum-класса.

Resource::through() позволяет обогащать уже сериализованный payload через callable или ResourcePayloadTransformerInterface, не меняя сам ресурс.