Udalosti modelov (Trackable)
Trait Trackable posiela udalosti Plausible pri udalostiach životného cyklu Eloquentu. Udalosť modelu priraďte k názvu udalosti v $plausibleEvents a voliteľne zostavte props pre každý model:
use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\Plausible\Concerns\Trackable;
class Order extends Model
{
use Trackable;
/** @var array<string, string> */
protected array $plausibleEvents = [
'created' => 'Order Placed',
'updated' => 'Order Updated',
'deleted' => 'Order Cancelled',
];
/** @return array<string, mixed> */
protected function plausibleEventProps(string $event): array
{
return ['total' => $this->total, 'plan' => $this->plan];
}
}Ako kľúč funguje akákoľvek udalosť Eloquent modelu — created, updated, deleted a ďalšie. Mapa sa číta z predvolenej hodnoty vlastnosti pri bootovaní modelu.
Úprava obsahu udalosti
Prepíšte tieto chránené metódy; prvé dve dostanú názov udalosti Plausible (napríklad Order Placed):
- plausibleEventProps(string $event) — vlastné props odoslané s udalosťou (predvolene žiadne).
- plausibleEventUrl(string $event) — URL priradená udalosti; predvolene URL aplikácie, tabuľka a kľúč modelu.
- plausibleEventSite() — web, kam udalosť ide; predvolene config('plausible.site'), hodnota null udalosť preskočí.
// The URL attributed to the event — defaults to {app.url}/{table}/{key}
protected function plausibleEventUrl(string $event): string
{
return route('orders.show', $this);
}
// The site the event goes to — defaults to config('plausible.site'); null skips the event
protected function plausibleEventSite(): ?string
{
return $this->tenant->analytics_domain;
}Ručné odoslanie udalosti
// Same site, visitor and queue rules as the lifecycle hooks — any event name
$order->dispatchPlausibleEvent('Order Refunded');Návštevník, web a fronta
Návštevník sa berie z aktuálneho requestu, ak existuje. Bez HTTP requestu — vo fronte či v konzolových príkazoch — sa použijú plausible.tracking.user_agent a plausible.tracking.ip_address. Udalosti sa posielajú len vtedy, keď je web známy, a cez frontu, pokiaľ plausible.tracking.queue nie je false.
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.