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

Prepojenie môže mať voliteľné expires_at. Pripravte ho na builderi alebo ho odovzdajte do connectTo():

use Carbon\CarbonInterval;
use RoundlyConsulting\Connections\Facades\Connections;

Connections::between($user, $team)->expiresIn(now()->addMonth())->connect();        // an instant
Connections::between($user, $team)->expiresIn(CarbonInterval::days(14))->connect(); // an interval from now
Connections::between($user, $team)->expiresIn(3600)->connect();                     // seconds from now
Connections::between($user, $team)->expiringAt(now()->addYear())->connect();        // an exact instant, or null

$user->connectTo($team, ['view'], now()->addWeek());

Posun expirácie

Connections::between($user, $team)->extend(now()->addYear());   // move the expiry
Connections::between($user, $team)->extend(null);               // clear it — never expires

$connection->expires_at;   // ?CarbonInterface
$connection->isExpired();  // expires_at is in the past
$connection->isActive();   // accepted and not expired

extend() vyhodí ConnectionNotFound, ak prepojenie neexistuje, a spúšťa ConnectionUpdated.

Predvolená expirácia

Nastavením expiry.default dostanú nové prepojenia expiráciu, ak ju volajúci nezadá — kladný relatívny reťazec ako 30 days či 2 weeks, alebo aspoň 1 sekundu ako celé číslo či číselný reťazec z env; čokoľvek iné vyhodí InvalidConfigurationException. Platí len pre nové prepojenia: opätovné prepojenie existujúcej dvojice ponechá uloženú expiráciu. Explicitná expirácia má vždy prednosť; null (predvolené) alebo prázdna hodnota znamená, že prepojenia nevypršia, kým to neurčíte:

// config/connections.php
'expiry' => [
    'default' => '30 days',   // or an integer of seconds, e.g. 2592000
],

Čo expirácia spôsobí

  • isExpired() vráti true, keď je expires_at v minulosti; isActive() vráti true pre prijaté prepojenie, ktoré ešte nevypršalo.
  • connect() nad existujúcou dvojicou ponechá expiráciu, pokiaľ nepripravíte novú, a toggle() ju nikdy neobnoví — predĺžite ju cez extend(), zrušíte cez extend(null).
  • Kým je zapnuté enforce_active_on_check, expirované prepojenie neudelí žiadne oprávnenia a nezapočíta sa do isConnectedTo() — ešte pred upratovaním.
  • Expirované riadky zostávajú v tabuľke, kým ich neupracete cez connections:prune, Connections::prune() alebo model:prune (pozrite Artisan príkazy).
  • connections:notify-expiring spúšťa ConnectionExpiring pre prepojenia tesne pred vypršaním.
  • Relácie expiredConnections() a expiringConnections() ich vypíšu pre konkrétny model (pozrite Dopytovanie prepojení); Connections::expiring($days) vráti dopyt na všetky živé prepojenia, ktoré vypršia v danom okne, naprieč všetkými connectormi.

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.