Artisan príkazy
| Príkaz | Čo robí |
|---|---|
events:install | Odmietne, kým existuje niektorá nakonfigurovaná tabuľka (s názvom kľúča events.tables.*); publikuje konfiguráciu a migrácie, vypíše typy kľúčov vedľa seba a ďalšie kroky. |
events:doctor {--counts} {--json} | Skontroluje inštaláciu; pri chybe skončí nenulovým kódom, samotné varovania skončia s 0. |
events:sweep {--limit=} {--chunk=100} | Ukončí prepadnuté rezervácie, posunie čakacie listiny, odošle splatné pripomienky — plánujte každú minútu. |
events:repair {--counts} {--orphans} {--dry-run} | Prepočíta počítadlá / uvoľní osirelé RSVP — bez prepínača oboje. |
events:geocode {--missing} {--venue=} {--force} {--chunk=100} | Geokóduje miesta konania z ich adries. |
Provider príkazy zaregistruje, no do plánovača nepridá nič:
// routes/console.php
use Illuminate\Support\Facades\Schedule;
Schedule::command('events:sweep')->everyMinute(); // held seats expire, waitlists move up, reminders go out
Schedule::command('lifecycle:sweep')->everyMinute(); // finished events complete at their endevents:install
- Skončí s kódom 1, kým existuje niektorá nakonfigurovaná tabuľka, a uvedie kľúč events.tables.*, ktorý treba zmeniť.
- Publikuje events-config, lifecycle-migrations, tags-migrations, media-migrations a events-migrations (pri zapnutej histórii slugov aj sluggable-migrations); už publikované súbory ponechá.
- Vypíše vedľa seba events.primary_key_type, lifecycle.key_type, tags.key_type, events.key_type a lifecycle.actor_key_type a potom ďalšie kroky: migrate, traity modelov, dva riadky plánovača, collector platieb a events:doctor.
events:doctor
php artisan events:doctor
php artisan events:doctor --counts # also compare every event's counters with a recount
php artisan events:doctor --json # [{severity, check, message}]Pri nájdenej chybe skončí nenulovým kódom; samotné varovania skončia s 0. Každé zistenie vypíše ako [check] message (alebo „Everything looks right.“) a --json vypíše [{severity, check, message}]:
| Kontrola | Závažnosť | Nájde |
|---|---|---|
key_types | chyba | lifecycle.key_type / tags.key_type ≠ events.primary_key_type; lifecycle.actor_key_type ≠ events.key_type; štítky pre organizátora pri tags.key_type ≠ events.key_type; história slugov pri sluggable.key_type ≠ events.primary_key_type. |
lifecycle | chyba | Nakonfigurovaný životný cyklus porušuje kontrakt (počiatočný stav nie je koncept, stav bez fázy, nedá sa zostaviť). |
tag_types | chyba / varovanie | Typy štítkov chýbajú alebo prepísanie povolí viac ako jednu kategóriu · prepísanie urobí kategóriu nekurátorovanú, neglobálnu či nehierarchickú, štítky nesúkromné alebo z niektorého typu voľný strom. |
tables | chyba | Nakonfigurovaná tabuľka chýba; história slugov zapnutá bez slug_history. |
distance | chyba | Dotaz na vzdialenosť zlyhá na predvolenom pripojení. |
policy, venue_policy, resources, payments | chyba | Nakonfigurovaná trieda chýba alebo nie je implementáciou; payments aj rezervácia, ktorá nie je kladné trvanie. |
reminders | chyba | Posuny mimo PT5M–P31D, viac ako päť alebo nie trvania; nečitateľné max_lateness. |
payments | varovanie | Platené typy vstupeniek, prázdny collector a žiadny listener RsvpHeld. |
urls · routes | varovanie | events.urls.event je prázdne · API je zapnuté s prázdnym auth_middleware. |
notifications | varovanie | Kanál database bez tabuľky notifications; typy účastníkov, ktorým nemožno posielať notifikácie. |
timezones · organizers · postponed | varovanie | Podujatia v inom časovom pásme ako ich miesto konania · uložený organizer_type mimo events.organizers · odložené viac ako 90 dní. |
counters | varovanie | S --counts: počítadlá, ktoré sa odchýlili od prepočtu. |
events:sweep
php artisan events:sweep # expire lapsed holds, move waitlists up, send due reminders
php artisan events:sweep --limit=500 # at most this many events per part (holds, reminders)
php artisan events:sweep --chunk=100 # events per batchRezervácie vypršia pre každé podujatie pod jeho zámkom, vrátane zmazaných podujatí; nasleduje posúvanie; pripomienky sa nárokujú raz — len pre naplánované alebo presunuté podujatia, ktoré sa začínajú v najbližších 32 dňoch. --limit obmedzí podujatia v každej časti (rezervácie, pripomienky). Príkaz vypíše štyri počty.
events:repair
php artisan events:repair # both: counters and orphaned RSVPs
php artisan events:repair --counts # recompute every event's counters under its row lock
php artisan events:repair --orphans # release the RSVPs of attendees whose row is gone
php artisan events:repair --dry-run # report without writing- --counts prepočíta počítadlá každého podujatia pod zámkom jeho riadku — odchýlka znamená chybu alebo ručný zápis.
- --orphans uvoľní RSVP účastníkov, ktorých riadok už neexistuje — hromadné mazanie nespúšťa udalosti modelu: miesta sa vrátia, čakacia listina sa posunie, riadky sa odstránia, jedným dotazom na typ účastníka.
- --dry-run len vypíše výsledok bez zápisu. Príkaz vypíše tri počty, pri skúšobnom behu s označením, že sa nič nezapísalo.
events:geocode
php artisan events:geocode # venues without coordinates (--missing, the default)
php artisan events:geocode --venue=7 # one venue (skipped when it has coordinates, unless --force)
php artisan events:geocode --force # every venue again
php artisan events:geocode --chunk=200 # venues per batch (default 100)Miesta konania sa čítajú podľa id, po --chunk naraz; zlyhané miesto sa započíta ako nenájdené s varovaním, nikdy nie ako fatálna chyba. Príkaz vypíše Geocoded a Not found a skončí s 0.
Z PHP
use RoundlyConsulting\Events\DataTransferObjects\RepairOptions;
use RoundlyConsulting\Events\DataTransferObjects\SweepOptions;
$swept = Events::sweep(new SweepOptions(limit: null, chunk: 100));
// SweepResult {events, expiredHolds, promoted, reminders, notified}
$report = Events::repair(new RepairOptions(counts: true, orphans: true, dryRun: false, chunk: 100));
// RepairReport {eventsChecked, countersFixed, orphansReleased, dryRun}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.