Artisan príkazy
| Príkaz | Čo robí |
|---|---|
tickets:install {--force} | Publikuje konfiguráciu a všetky migrácie, vypíše typy kľúčov a ďalšie kroky. |
tickets:doctor {--json} | Skontroluje inštaláciu; pri akejkoľvek chybe skončí s kódom 1. |
tickets:sweep | Označí tikety po termíne a tesne pred termínom — naplánujte každých päť minút. |
tickets:prune-fields {--dry-run} {--chunk=200} | Zabudne osirotené hodnoty vlastných polí. |
Provider príkazy zaregistruje, do plánovača však nič nevloží:
// routes/console.php
use Illuminate\Support\Facades\Schedule;
Schedule::command('tickets:sweep')->everyFiveMinutes(); // overdue and due-soon flags
Schedule::command('lifecycle:sweep')->everyMinute(); // closes resolved tickets after 7 daystickets:install
- Publikuje tickets-config, potom media-, likes-, reports-, approvals-, comments-, lifecycle-, attributes- a tickets-migrations (tabuľka histórie slugov zo sluggable nie je potrebná).
- Ukáže šesť nastavení typov kľúčov, ktoré treba pred migráciou zladiť — tickets.primary_key_type, tickets.key_type, lifecycle.key_type, lifecycle.actor_key_type, comments.key_type, attributes.key_type — s ich aktuálnymi hodnotami (INVALID pri nezmyselnej).
- Vypíše ďalšie kroky: migráciu, model používateľa ako riešiteľa, Gate oprávnenia, dva riadky pre plánovač, tickets:doctor — a kým by doctor hlásil guest_links, tri spôsoby, ako to vyriešiť —, plus ako sprístupniť a prispôsobiť API. Súbor rout inštalátor nikdy nepublikuje.
- Idempotentný: publikované súbory zostanú, pokiaľ nezadáte --force, a znova publikovaná migrácia skončí v tom istom súbore ako predtým.
tickets:doctor
Kontroly len na čítanie, po sekciách. Každá má sekciu, kód, úroveň (ok, warning, error) a hlásenie; návratový kód je 1, keď je ktorákoľvek kontrola error:
php artisan tickets:doctor # exit 1 on any error
php artisan tickets:doctor --json # {ok, checks: [{section, code, level, message}]}| Sekcia | Kódy | Úroveň | Kontroluje |
|---|---|---|---|
keys | alignment | ok / error | Každé nastavenie typu kľúča je platné a dvojice sa zhodujú. |
keys | user_model | warning | Model používateľa predvoleného guardu má iný typ kľúča ako tickets.key_type. |
lifecycle | contract, not_a_definition, not_status_attribute, state_not_ticket_state, automation_* | ok / error | Nakonfigurovaný životný cyklus spĺňa kontrakt tiketu. |
lifecycle | lifecycle.<code> | error / warning / ok | Vlastná validácia lifecycle-for-laravel; dodaná dvojica close/dismiss (ambiguous_target) je ok, s poznámkou. |
lifecycle | conveniences | ok / warning | Ktoré pomenované skratky životný cyklus podporuje; upozornenie, ak nie všetkých osem. |
priority | enum, stored | ok / error / warning | Enum a predvolená hodnota sú použiteľné; koľko tiketov má hodnotu, ktorú enum už nemá. |
authorization | abilities | ok / warning / error | Oprávnenia sú definované (Gate::has); nedefinované je len upozornenie, lebo Gate::before nevidí. |
aliases | maps, requesters, assignables, watchables, projects | ok / error | Každá mapa aliasov je platná; assignables implementujú Assignee, projects TicketProject. |
guests | fields | ok / error | Definície polí hosťa sú platné. |
conversation | meta, comments_authorization | ok / error / warning | Tabuľka comments má stĺpec meta; upozornenie, kým je zapnuté comments.authorization. |
attachments | disk, temporary_urls | ok / warning / error | Disk príloh nie je verejne servírovaný disk public; URL na stiahnutie sa dajú vytvoriť. |
api | policy, routes, guest_links | ok / warning / error | Trieda policy je platná; routy sú za middleware auth*; odkazy pre hostí sa dajú vytvoriť — chyba, kým sa hosťom posielajú notifikácie. |
notifications | enabled, types, url | ok / error | Notifikácie zapnuté či vypnuté, každý typ je trieda z balíka, podtrieda alebo false, URL je http(s). |
due | soon_window, auto_close, schedule | ok / error | Dĺžky trvania sa dajú prečítať; pripomienka naplánovať oba sweepy. |
config | keys | ok / warning | Publikovaná konfigurácia stále obsahuje routes.enabled, guests.enabled a attachments.mimes. |
Čerstvá inštalácia končí s kódom 1, kým ju nenastavíte: notifikácie pre hostí sú predvolene zapnuté a predvolený generátor odkazov pre hostí potrebuje routy pre hostí, ktoré sú vypnuté. Vyriešite to cez TICKETS_ROUTES=on, vlastný Contracts\GuestLinkGenerator alebo TICKETS_NOTIFY_GUESTS=off.
tickets:sweep
Zavolá Tickets::sweep() a vypíše počty. Každý tiket sa označí najviac raz na termín, aj pri súbežných kontrolách; nikdy nič automaticky neuzatvára — to robí lifecycle:sweep:
php artisan tickets:sweep
# 3 tickets became overdue.
# 1 ticket is due soon.tickets:prune-fields
Zabudne hodnoty vlastných polí, ktoré už nezodpovedajú žiadnemu poľu ich tiketu; hodnoty neaktívneho poľa zostanú. Jediný krok, ktorý sa nedá vrátiť:
| Voľba | Význam |
|---|---|
--dry-run | Len spočíta (5 orphaned field values would be forgotten.). |
--chunk=200 | Počet tiketov na dávku, celé číslo od 1 do 999999 (čokoľvek iné skončí chybou). |
php artisan tickets:prune-fields --dry-run
php artisan tickets:prune-fields --chunk=500Prejavte 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.