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

Balík funguje bez akejkoľvek konfigurácie. Publikovaný config/connections.php v plnom znení:

return [

    // The Eloquent model used to represent a connection. Swap it for your own
    // subclass of RoundlyConsulting\Connections\Models\Connection to extend behaviour.
    'model' => RoundlyConsulting\Connections\Models\Connection::class,

    // The database table that stores connections. The migration reads this value.
    'table' => env('CONNECTIONS_TABLE', 'connections'),

    // Key type of the connector / connectable morph columns: bigint, uuid or ulid.
    // Read by the migration — choose it before you publish and run it.
    'key_type' => env('CONNECTIONS_KEY_TYPE', 'bigint'),

    // In-request memoisation of resolved connections. Writes invalidate it automatically,
    // and it is dropped at the start of every request / queued job (Octane included).
    'cache' => [
        'enabled' => env('CONNECTIONS_CACHE_ENABLED', true),
    ],

    // Dispatch lifecycle events as connections change.
    'events' => [
        'enabled' => env('CONNECTIONS_EVENTS_ENABLED', true),
    ],

    // Register a Gate::before check so $user->can('permission', $connectable) works.
    'register_gate' => env('CONNECTIONS_REGISTER_GATE', false),

    // Permissions applied to a new connection when the caller supplies none.
    'default_permissions' => [],

    // Status a connection is created with when none is given (pending|accepted|blocked).
    'default_status' => env('CONNECTIONS_DEFAULT_STATUS', 'accepted'),

    // When true, access checks only count active (accepted + not expired) connections.
    'enforce_active_on_check' => env('CONNECTIONS_ENFORCE_ACTIVE_ON_CHECK', true),

    // Default expiry for new connections: a relative string ("30 days") or seconds.
    'expiry' => [
        'default' => env('CONNECTIONS_EXPIRY_DEFAULT'),
    ],

];

Všetky kľúče

KľúčEnvPredvolenéÚčel
model—Connection::classModel prepojenia. Musí to byť Models\Connection alebo jeho podtrieda — čokoľvek iné vyhodí InvalidConfigurationException s názvom kľúča.
tableCONNECTIONS_TABLEconnectionsTabuľka s prepojeniami; číta ju migrácia aj model. Prázdna hodnota = nenastavená (connections); akákoľvek iná hodnota musí byť reťazec.
key_typeCONNECTIONS_KEY_TYPEbigintTyp kľúča polymorfných stĺpcov connector / connectable: bigint, uuid alebo ulid (iná hodnota vyhodí InvalidConfigurationException). Číta ho migrácia, preto ho nastavte pred migrovaním.
cache.enabledCONNECTIONS_CACHE_ENABLEDtrueCache prepojení obmedzená na jeden request / job vo fronte. Vypnite, ak chcete vždy dopytovať databázu.
events.enabledCONNECTIONS_EVENTS_ENABLEDtrueOdosielanie eventov životného cyklu.
register_gateCONNECTIONS_REGISTER_GATEfalseKontroly cez Gate v aplikácii prepadnú na oprávnenia prepojení.
default_permissions—[]Oprávnenia pre nové prepojenie, ak žiadne nezadáte. Explicitne prázdna sada zostane prázdna. Nenastavená hodnota (null alebo prázdna) = žiadne; inak zoznam neprázdnych názvov oprávnení.
default_statusCONNECTIONS_DEFAULT_STATUSacceptedPočiatočný stav nových prepojení: pending, accepted alebo blocked; čokoľvek iné vyhodí InvalidConfigurationException. Na existujúce prepojenie sa nikdy nepoužije.
enforce_active_on_checkCONNECTIONS_ENFORCE_ACTIVE_ON_CHECKtrueKontroly prístupu vyžadujú prijaté a neexpirované prepojenie. false = stav a expirácia sú len informatívne; počíta sa každé uložené prepojenie.
expiry.defaultCONNECTIONS_EXPIRY_DEFAULTnullPredvolená expirácia nových prepojení, ak žiadnu nezadáte: kladný relatívny reťazec (30 days) alebo počet sekúnd ≥ 1 — celé číslo či číselný reťazec z env. Nenastavená hodnota (null alebo prázdna) = nikdy.

Prostredie (env)

Všetky kľúče okrem model a default_permissions sa dajú nastaviť cez env, takže konfiguráciu publikujete len zriedka:

CONNECTIONS_TABLE=connections
CONNECTIONS_KEY_TYPE=bigint
CONNECTIONS_CACHE_ENABLED=true
CONNECTIONS_EVENTS_ENABLED=true
CONNECTIONS_REGISTER_GATE=false
CONNECTIONS_DEFAULT_STATUS=accepted
CONNECTIONS_ENFORCE_ACTIVE_ON_CHECK=true
CONNECTIONS_EXPIRY_DEFAULT="30 days"

Logické kľúče čítajú reťazce z env bežným spôsobom: true, 1, on alebo yes príznak zapnú; false, 0, off alebo no ho vypnú a čokoľvek iné (preklep ako =disabled) vyhodí InvalidConfigurationException, namiesto toho, aby sa potichu prečítalo ako predvolená hodnota. expiry.default prijíma relatívny reťazec, napríklad 30 days, alebo sekundy — celé číslo či číselný reťazec z env, napríklad CONNECTIONS_EXPIRY_DEFAULT=3600. Platí len pre nové prepojenia.

Nenastavený kľúč (chýbajúci, null alebo prázdny: '' či len medzery, čo dá samotný riadok CONNECTIONS_DEFAULT_STATUS=) dostane predvolenú hodnotu. Čokoľvek iné, čo nesedí, vyhodí InvalidConfigurationException s názvom kľúča, namiesto návratu k predvolenej hodnote: expirácia, ktorú Carbon nevie spracovať (thirty days), nulová či záporná expirácia, expirácia, ktorá nie je reťazcom ani celým číslom, zoznam oprávnení, ktorý nie je zoznamom názvov (vrátane prázdneho názvu v zozname), tabuľka, ktorá nie je reťazcom, neznámy key_type či default_status alebo model, ktorý nie je Connection.

Kontroly vyžadujú aktívne prepojenie

enforce_active_on_check je predvolene zapnuté: kontroly oprávnení, Gate hook, isConnectedTo() aj ostatné kontroly prepojenia počítajú len aktívne prepojenia — prijaté a neexpirované. Expirované alebo neprijaté prepojenie oprávnenie neudelí. Ak príznak nastavíte na false, stav a expirácia budú len informatívne a započíta sa každé uložené prepojenie.

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.