Expirácia
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 expiredextend() 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 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.