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

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:sweepOznačí 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 days

tickets: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}]}
SekciaKódyÚroveňKontroluje
keysalignmentok / errorKaždé nastavenie typu kľúča je platné a dvojice sa zhodujú.
keysuser_modelwarningModel používateľa predvoleného guardu má iný typ kľúča ako tickets.key_type.
lifecyclecontract, not_a_definition, not_status_attribute, state_not_ticket_state, automation_*ok / errorNakonfigurovaný životný cyklus spĺňa kontrakt tiketu.
lifecyclelifecycle.<code>error / warning / okVlastná validácia lifecycle-for-laravel; dodaná dvojica close/dismiss (ambiguous_target) je ok, s poznámkou.
lifecycleconveniencesok / warningKtoré pomenované skratky životný cyklus podporuje; upozornenie, ak nie všetkých osem.
priorityenum, storedok / error / warningEnum a predvolená hodnota sú použiteľné; koľko tiketov má hodnotu, ktorú enum už nemá.
authorizationabilitiesok / warning / errorOprávnenia sú definované (Gate::has); nedefinované je len upozornenie, lebo Gate::before nevidí.
aliasesmaps, requesters, assignables, watchables, projectsok / errorKaždá mapa aliasov je platná; assignables implementujú Assignee, projects TicketProject.
guestsfieldsok / errorDefinície polí hosťa sú platné.
conversationmeta, comments_authorizationok / error / warningTabuľka comments má stĺpec meta; upozornenie, kým je zapnuté comments.authorization.
attachmentsdisk, temporary_urlsok / warning / errorDisk príloh nie je verejne servírovaný disk public; URL na stiahnutie sa dajú vytvoriť.
apipolicy, routes, guest_linksok / warning / errorTrieda policy je platná; routy sú za middleware auth*; odkazy pre hostí sa dajú vytvoriť — chyba, kým sa hosťom posielajú notifikácie.
notificationsenabled, types, urlok / errorNotifikácie zapnuté či vypnuté, každý typ je trieda z balíka, podtrieda alebo false, URL je http(s).
duesoon_window, auto_close, scheduleok / errorDĺžky trvania sa dajú prečítať; pripomienka naplánovať oba sweepy.
configkeysok / warningPublikovaná 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ľbaVýznam
--dry-runLen spočíta (5 orphaned field values would be forgotten.).
--chunk=200Poč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=500

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.