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

hasPermissionThroughConnection() — a všetko, čo na ňom stojí: varianty any/all, permissions()->has() / hasAny() / hasAll() aj Gate hook — si pamätá načítané prepojenie pre každú dvojicu connector–connectable, takže stránka, ktorá overuje prístup mnohokrát, sa databázy spýta raz:

$user->hasPermissionThroughConnection($team, 'edit');               // queries once, then memoised
$user->hasPermissionThroughConnection($team, 'view');               // served from the cache
$user->hasPermissionThroughConnection($team, 'edit', force: true);  // re-query and refresh the entry

Connections::between($user, $team)->permissions()->revoke('edit');  // writes invalidate the pair
$user->hasPermissionThroughConnection($team, 'edit');               // false — no force needed
  • Cache ukladá riadok Connection, nie výsledok, takže stav aj expirácia sa vyhodnotia v čase kontroly.
  • Každý zápis cez balík — fasáda, trait, akcie, hromadné slovesá aj sync — invaliduje dotknutú dvojicu; connections:prune a Connections::prune() po odstránení riadkov vyprázdnia celú cache.
  • isConnectedTo() a ostatné kontroly prepojenia sa vždy pýtajú databázy.
  • Nastavením cache.enabled na false sa bude databáza dopytovať pri každej kontrole.

Životnosť cache

Cache je scoped inštancia v kontajneri, ktorá sa zahodí na začiatku každého requestu a jobu vo fronte — vrátane Octane a queue:work — takže zapamätané oprávnenie nikdy neprežije jeden cyklus. V rámci jedného requestu či jobu však môže prehliadnuť zmeny mimo zápisovej cesty balíka, napríklad z iného procesu alebo priamou Eloquent úpravou Connection. Tam, kde záleží na čerstvosti, použite force: true, vypnite cache alebo ju vyprázdnite uprostred requestu cez fasádu:

use RoundlyConsulting\Connections\Facades\Connections;

Connections::flushCache();   // forget every memoised connection

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.