Artisan príkazy
Balík registruje tri príkazy:
php artisan connections:prune # soft-delete every expired connection
php artisan connections:notify-expiring --days=7 # dispatch ConnectionExpiring for links expiring within 7 days
php artisan make:connectable Organisation # scaffold a connectable model| Príkaz | Čo robí |
|---|---|
connections:prune | Soft-delete všetkých expirovaných prepojení a výpis ich počtu. |
connections:notify-expiring {--days=7} | Spustí ConnectionExpiring pre každý riadok Connections::expiring($days) a vypíše počet. |
make:connectable {name} {--existing} | Vygeneruje prepojiteľný model alebo vypíše riadky na doplnenie do existujúceho. |
Upratovanie expirovaných prepojení
Prepojenie, ktorého expires_at je v minulosti, sa dá upratať. connections:prune — aj Connections::prune(), ktoré vráti počet — soft-deletuje všetky expirované prepojenia jediným dopytom, takže zablokovaná dvojica zostane zablokovaná a reconnect() prepojenie stále obnoví. Funguje aj model:prune z Laravelu, správa sa však inak:
php artisan model:prune --model="RoundlyConsulting\Connections\Models\Connection"Model je MassPrunable a používa soft deletes, preto model:prune expirované riadky natrvalo vymaže — aj tie, ktoré connections:prune už soft-deletoval — a spolu s riadkom zmizne aj blokovanie.
Upozornenia na expiráciu
connections:notify-expiring spustí ConnectionExpiring pre každé prepojenie, ktoré vyprší v najbližších --days dňoch (predvolene 7), s $daysUntilExpiry zaokrúhleným nahor. Spustí jeden event pre každý riadok Connections::expiring($days) a nepotrebuje žiadnu ďalšiu tabuľku: pri každom behu sa spustí pre každé prepojenie, ktoré je stále v okne, bez ohľadu na stav — okno preto zlaďte s plánom, napríklad denný beh s --days=1. Na notifikáciu počúvajte event:
use Illuminate\Support\Facades\Event;
use RoundlyConsulting\Connections\Events\ConnectionExpiring;
Event::listen(function (ConnectionExpiring $event): void {
$connection = $event->connection;
// AccessExpiringSoon is your own notification class.
$connection->connector?->notify(
new AccessExpiringSoon($connection, $event->daysUntilExpiry),
);
});Plánovanie
// routes/console.php
use Illuminate\Support\Facades\Schedule;
Schedule::command('connections:prune')->daily();
Schedule::command('connections:notify-expiring --days=1')->daily();make:connectable
make:connectable Organisation vygeneruje model, ktorý už používa HasConnections a implementuje Connectable. S --existing nič nezapíše, len vypíše riadky traitu a rozhrania, ktoré doplníte do existujúceho modelu (pozrite Prepojiteľné modely).
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.