olssonm/livewire-synthesizer

v0.1 2023-12-20 09:21 UTC

This package is auto-updated.

Last update: 2024-11-20 11:20:30 UTC


README

Warning

In development, in no way near ready to use in production.

Simple classes when using simple objects via Livewire Synthesizers – saves some time instead of having to write custom synthesizers from scratch.

This package tries to hydrate and dehydrate all properties on the resource.

Note

Livewire already ships with synthesizers for simple objects such as collections and arrays, this package is when you need to use custom objects.

Resource

Represents your custom class/object. All you have to do is extend Olssonm\LivewireSynthesizer\Resources\GenericResource.

<?php

namespace App\Resources;

use Olssonm\LivewireSynthesizer\Resources\GenericResource;

class Post extends GenericResource
{
    //
}

Synthesizers

Your synthesizer, extend Olssonm\LivewireSynthesizer\Synthesizers\GenericSynthesizer, set a key and specify your class and your almost set.

Please note that your key has to be unique.

<?php

namespace App\Synthesizers;

use App\Resources\Post;
use Olssonm\LivewireSynthesizer\Synthesizers\GenericSynthesizer;

class Post extends GenericSynthesizer
{
    public static $key = 'post';

    public static $class = Post::class;
}

Registering your synthesizer

To enable Livewire to find and register the synthesizer you can register it in your AppServiceProvider;

use App\Support\Synthesizers\Post;
use Livewire\Livewire;

/**
 * Register any application services.
 */
public function register(): void
{
    Livewire::propertySynthesizer(Post::class);
}