NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Connections for Laravel

Databázová schéma

Každé prepojenie je jeden riadok v jedinej polymorfnej tabuľke — predvolene connections, premenovať ju môžete kľúčom table. Publikovaná migrácia v skrátenej podobe:

Schema::create('connections', function (Blueprint $table) use ($keyType): void {
    $table->id();
    $table->morphKey('connector', $keyType, nullable: false);
    $table->morphKey('connectable', $keyType, nullable: false);
    $table->jsonb('permissions');
    $table->string('status')->default('accepted')->index();
    $table->jsonb('meta')->nullable();
    $table->timestamp('expires_at')->nullable();
    $table->timestamps();
    $table->softDeletes();

    $table->unique(
        ['connector_type', 'connector_id', 'connectable_type', 'connectable_id'],
        'connections_morph_unique',
    );
});
StĺpecTypPoznámka
idbigintPrimárny kľúč.
connector_type / connector_idmorph kľúčStrana, ktorá prepojenie vytvorila. id sa riadi podľa key_type.
connectable_type / connectable_idmorph kľúčStrana, na ktorú prepojenie smeruje. id sa riadi podľa key_type.
permissionsjsonbReťazce oprávnení; cast na Collection.
statusstring, indexovanýpending, accepted alebo blocked; predvolene accepted. Cast na ConnectionStatus.
metajsonb, nullableVoľné metadáta; cast na pole.
expires_attimestamp, nullableNull znamená, že prepojenie nikdy nevyprší.
created_at / updated_attimestampsŠtandardné časové značky Eloquentu.
deleted_atsoft deletesNastavuje ho disconnect(), odpojenie pri sync a connections:prune; po oživení či obnove dvojice sa znova vymaže.

Kľúče UUID a ULID

Oba morph stĺpce id sa riadia podľa key_type — bigint (predvolené), uuid alebo ulid. Nastavte ho pred publikovaním a spustením migrácie: po vytvorení tabuľky je nemenný a predvolený bigint vytvorí presne tie isté stĺpce ako morphs() v Laraveli.

# .env — set before publishing and running the migration
CONNECTIONS_KEY_TYPE=ulid

php artisan vendor:publish --tag="connections-migrations"
php artisan migrate

Jeden riadok na dvojicu

Index connections_morph_unique pokrýva connector_type, connector_id, connectable_type a connectable_id — vrátane soft-deleted riadkov. Opätovné prepojenie tej istej dvojice aktualizuje existujúci riadok namiesto pridania druhého a odpojená či uprataná dvojica sa oživí na mieste — connect() ju začne nanovo, reconnect() ju obnoví v pôvodnej podobe (pozrite Prepínanie a obnova).

permissions a meta sú stĺpce jsonb. Na PostgreSQL sa tak dajú porovnávať a indexovať; na MySQL a SQLite ich schema builder skompiluje na rovnaký typ ako json.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.