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

Open source

Connections for Laravel

Inštalácia
composer require roundly-consulting/connections-for-laravel
Vyžaduje: PHP ^8.4 · Laravel ^12.0|^13.0

Prehľad

Prepojenia typu many-to-many medzi Eloquent modelmi, s oprávneniami pre každé prepojenie a voliteľnou expiráciou. Prepojte akýkoľvek model s akýmkoľvek iným — používateľa s tímom, organizáciu s projektom — zaznamenajte, čo smie každé prepojenie robiť, preveďte ho pozvánkou pending → accepted / blocked a nechajte expirované prepojenia upratať sa samé. Plynulá fasáda Connections, metódy traitu, samostatné akcie, eventy, voliteľný Gate hook a testovací fake zvládnu každú operáciu jedným čitateľným riadkom. Licencia MIT, bez runtime závislostí tretích strán okrem Laravelu a dvoch malých pomocných balíkov Roundly.

Čo získate

Prepojte akýkoľvek model s akýmkoľvek

Jedno polymorfné, smerované prepojenie na dvojicu — používateľ s tímom, organizácia s projektom. Opätovné prepojenie zmení len to, čo zadáte.

Oprávnenia pre každé prepojenie

Udeľujte, odoberajte, synchronizujte a mažte sady oprávnení; overujte jedno, niektoré alebo všetky, aj so zástupnými znakmi * a posts.*.

Pozvánky a stavy

Postup pending → accepted / blocked s vynútenými prechodmi stavov a eventom pri každom kroku. Prístup udeľujú len aktívne prepojenia.

Expirácia

expiresIn(), extend() a predvolená doba platnosti, k tomu príkaz na upratanie expirovaných a event pred vypršaním.

Hromadné operácie a synchronizácia

toMany()->connectAll() a ďalšie hromadné slovesá, from()->sync() zosúladí presnú množinu a vráti typovaný SyncResult.

Fasáda, DI alebo akcie

Jedna fasáda Connections, injektovateľný ConnectionManager alebo jednoúčelové akcie — plus deväť eventov životného cyklu a voliteľný hook Gate::before.

Testovací fake

Connections::fake() zaznamenáva zápisy cez fasádu, injektovaný manažér aj trait na asercie a zároveň zapisuje do vašej testovacej databázy.

Dokumentácia

Inštalácia

Inštalácia cez Composer, publikovanie a spustenie migrácie a voliteľne publikovanie konfiguračného súboru.

Konfigurácia

Všetky konfiguračné kľúče a ich predvolené hodnoty — model, tabuľka, typ kľúča, cache, eventy, Gate, oprávnenia, stav a expirácia.

Databázová schéma

Jedna polymorfná tabuľka connections — morph kľúče, oprávnenia a meta v jsonb, stav, expirácia, soft deletes a unikátny index dvojice.

Prepojiteľné modely

Pridajte trait HasConnections a kontrakt Connectable na akýkoľvek model, vygenerujte ho cez make:connectable a používajte metódy traitu.

Fasáda Connections

Celé verejné API v jednej fasáde — buildery between() a from(), sada oprávnení permissions(), expiring(), prune(), flushCache() a fake().

DI a akcie

Namiesto fasády injektujte ConnectionManager alebo spúšťajte jednoúčelové akcie — s kompletnou mapou fasáda → akcia, DTO a výnimkami.

Oprávnenia

Udeľujte, odoberajte, synchronizujte a mažte oprávnenia prepojenia; overujte jedno, niektoré alebo všetky, aj so zástupnými znakmi.

Pozvánky a stavy

Schvaľovacie postupy: vytvárajte prepojenia v stave pending, prijímajte ich alebo blokujte z oboch strán a využite enum ConnectionStatus.

Expirácia

Nastavte prepojeniu expiráciu, posuňte ju alebo zrušte, určte predvolenú dobu platnosti a zistite, ako expirácia ovplyvňuje prístup.

Metadáta

Pripojte k prepojeniu ľubovoľný kontext v JSON stĺpci meta, čítajte ho bodkovou notáciou a pri opätovnom prepojení ho zlúčte alebo nahraďte.

Hromadné operácie a sync

Prepájajte, odpájajte, udeľujte a odoberajte naraz pre viac connectables alebo zosúlaďte presnú množinu cez from()->sync().

Prepínanie a obnova

Odpájanie cez soft deletes, prepínanie cez toggle() a návrat odstráneného prepojenia v pôvodnej podobe cez reconnect() alebo nanovo cez connect().

Dopytovanie prepojení

Zistite, kto je prepojený, prechádzajte oba smery, filtrujte scopes pre aktívne, expirované a oprávnenia a načítajte typované modely.

Eventy

Deväť eventov životného cyklu — vytvorenie, zmena, odstránenie, oprávnenia, pozvánky, zmeny stavu, obnova a upozornenie na expiráciu.

Integrácia s Gate

Zapnite hook Gate::before, aby $user->can('publish', $team) a ďalšie autorizačné kontroly Laravelu išli cez prepojenia.

Kešovanie

Kontroly oprávnení sa pamätajú pre každú dvojicu connector–connectable, invalidujú sa pri každom zápise a obídete ich cez force: true.

Artisan príkazy

Upracte expirované prepojenia, odošlite upozornenia pred expiráciou, generujte prepojiteľné modely a naplánujte údržbu.

Vlastný model prepojenia

Cez connections.model nasaďte vlastnú podtriedu Connection s ďalším správaním a zapojte voliteľné integrácie ako reports-for-laravel.

Testovanie

Zaznamenajte každý zápis cez Connections::fake() — fasáda, injektovaný manažér aj trait — overte každú operáciu a pripravte riadky cez factory.

Požiadavky

PHP 8.4+, Laravel 12 alebo 13 a dva pomocné balíky Roundly, ktoré Composer nainštaluje automaticky.

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.