Konfigurácia
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ľúč | Env | Predvolené | Účel |
|---|---|---|---|
model | — | Connection::class | Model prepojenia. Musí to byť Models\Connection alebo jeho podtrieda — čokoľvek iné vyhodí InvalidConfigurationException s názvom kľúča. |
table | CONNECTIONS_TABLE | connections | Tabuľka s prepojeniami; číta ju migrácia aj model. Prázdna hodnota = nenastavená (connections); akákoľvek iná hodnota musí byť reťazec. |
key_type | CONNECTIONS_KEY_TYPE | bigint | Typ 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.enabled | CONNECTIONS_CACHE_ENABLED | true | Cache prepojení obmedzená na jeden request / job vo fronte. Vypnite, ak chcete vždy dopytovať databázu. |
events.enabled | CONNECTIONS_EVENTS_ENABLED | true | Odosielanie eventov životného cyklu. |
register_gate | CONNECTIONS_REGISTER_GATE | false | Kontroly 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_status | CONNECTIONS_DEFAULT_STATUS | accepted | Poč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_check | CONNECTIONS_ENFORCE_ACTIVE_ON_CHECK | true | Kontroly 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.default | CONNECTIONS_EXPIRY_DEFAULT | null | Predvolená 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 kryptomienOdoslaní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.