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

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:pruneSoft-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 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.