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

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');

Transakcie

Každá udalosť počká, kým sa zmena v databáze naozaj uloží: v transakcii sa odošle (alebo zaradí do fronty) až po jej potvrdení a pri rollbacku vôbec. Mimo transakcie odíde hneď:

use Illuminate\Support\Facades\DB;

DB::transaction(function () {
    Order::create(['total' => 99]);   // 'Order Placed' is sent (or queued) once the transaction commits
});                                   // a rolled-back save is never tracked

Návštevník, web a fronta

Návštevník sa berie z aktuálneho requestu, ak existuje. V konzole alebo vo workeri fronty — kde Laravel vytvorí request bez routy so zástupným user-agentom Symfony a adresou 127.0.0.1 — alebo keď request nemá user-agent či IP, 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 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.