area17/component-transformers

v0.2 2023-05-26 17:12 UTC

This package is auto-updated.

Last update: 2024-08-26 20:16:02 UTC


README

设计系统由可在任何地方使用的组件组成,但在集成过程中,用于解析组件数据的代码通常会被重复使用。组件转换器包允许您为每个组件及其变体创建转换器,将应用程序输出的数据转换为前端组件能够消费的格式。

它旨在与 Twill 一起使用,并支持页面数据和块数据。

发布配置

php artisan vendor:publish --tag=component-transformers-config

创建转换器

您可以在 app 目录中手动创建一个文件,以下是一个基本模板

<?php

namespace App\Transformers;

use A17\ComponentTransformers\Base;

class ComponentName extends Base
{
    public function primary($data = null): array
    {
        return [
            // 'title' => $data->title ?? null,
        ];
    }
}

或者您可以使用内置命令自动创建一个

php artisan transformer:create

这将创建一个与上述文件类似的文件在您的 app 目录中。如果存在与您输入的组件名称相同的文件,它将在该文件末尾添加一个使用变体名称的方法。

使用转换器

在块中

$items = Transform::listing($block->getRelated('items'))->primary();

在控制器中

use A17\ComponentTransformers\Transform;

class MyController extends Controller
{
    public function index()
    {
        $item = MyModel::first();

        return [
            'hero' => Transform::hero($item)->primary(),
            'listing' => Transform::listing($item)->primary(),
        ];
    }
}