finagin/temporary-source

1.0.0 2025-05-31 12:04 UTC

This package is auto-updated.

Last update: 2025-05-31 12:07:47 UTC


README

<?php

use Finagin\TemporarySource\TemporaryMigration as Migration;

return new class extends Migration
{
    protected string $model = \App\Models\Outline::class;
    
    // ...
}

Model classes can use the TemporarySource trait to provide a temporary source of data.

use App\Facades\ExternalSource;
use Finagin\TemporarySource\TemporarySource;
use Illuminate\Database\Eloquent\Model;

class Outline extends Model
{
    /** @use TemporarySource<static> */
    use TemporarySource;
    
    // ...
    
    public function getRows(): array
    {
        return ExternalSource::list() ?? [
            ['id' => 1, 'name' => 'First Key'],
            ['id' => 2, 'name' => 'Second Key'],
        ];
    }
}

Express update Blueprint

Create a custom blueprint class that extends TemporaryBlueprint:

namespace App\Support;

class Blueprint extends \Finagin\TemporarySource\TemporaryBlueprint
{
}

Add bindings to your AppServiceProvider or a dedicated service provider to use the TemporaryBlueprint:

$this->app->bind(
    \Finagin\TemporarySource\TemporaryBlueprint::class,
    \App\Support\Blueprint::class,
);