Typovo bezpečné a ľahko objaviteľné parametre sú v RoundlyConsulting\Plausible\Enums. Všade, kde sa prijíma enum, funguje aj zodpovedajúci reťazec:
| Enum | Použitie | Hodnoty |
|---|---|---|
Metric | metrics() pri každom terminálnom volaní | visitors, visits, pageviews, views_per_visit, bounce_rate, visit_duration, events, scroll_depth, conversion_rate, group_conversion_rate, total_revenue, average_revenue, time_on_page, exit_rate, percentage |
Period | period() a rozsah dátumov vo v2 | day, 7d, 30d, month, 6mo, 12mo, year, all, custom |
Interval | interval() pre časové rady a rozpady | minute, hour, date, week, month |
Property | v1 breakdown(), property(), cursor() | event:name, event:page, event:hostname, event:goal, visit:source, visit:referrer, visit:utm_medium, visit:utm_source, visit:utm_campaign, visit:utm_content, visit:utm_term, visit:device, visit:browser, visit:browser_version, visit:os, visit:os_version, visit:country, visit:region, visit:city, visit:entry_page, visit:exit_page |
Dimension | v2 dimensions() a where() | všetky hodnoty Property, navyše visit:channel a časové úseky time:hour, time:day, time:week, time:month |
FilterOperator | where() / orWhere() | is, is_not, contains, contains_not, matches, matches_not, and, or, not, has_done, has_not_done |
GoalType | CreateGoalRequest | event, page |
Pre vlastnú vlastnosť udalosti použite Property::custom('plan') alebo Dimension::custom('plan') — obe vrátia reťazec event:props:plan.
Pomocníci
Vďaka enums-for-laravel má každý enum rozhranie Helpers — values(), labels(), options(), toOptions(), validationRule(), vyhľadanie podľa názvu a popisu a pomocníkov is()/when*. Hodí sa pre dashboardy, výberové polia a validáciu zvoleného parametra:
use RoundlyConsulting\Plausible\Enums\Dimension;
use RoundlyConsulting\Plausible\Enums\Metric;
use RoundlyConsulting\Plausible\Enums\Period;
use RoundlyConsulting\Plausible\Enums\Property;
Metric::values(); // 'visitors', 'visits', 'pageviews', … — the raw wire keys
Metric::validationRule(); // 'in:visitors,visits,pageviews,…' for request validation
Period::toOptions(); // ['day' => 'Day', '7d' => 'Seven Days', …] for a <select>
Period::options(); // list of {value, label, name} DTOs for JS/Inertia
Period::fromName('SixMonths'); // Period::SixMonths
Period::SevenDays->readable(); // 'Seven Days'
Dimension::EventName->readable(); // 'Event Name'
Metric::ViewsPerVisit->readable(); // 'Views Per Visit'
Property::custom('plan'); // 'event:props:plan'
Dimension::custom('plan'); // 'event:props:plan'Validácia vstupu
use RoundlyConsulting\Plausible\Enums\Metric;
use RoundlyConsulting\Plausible\Enums\Period;
$validated = $request->validate([
'metric' => ['required', Metric::validationRule()],
'period' => ['required', Period::validationRule()],
]);
$result = Plausible::stats()
->query()
->metrics(Metric::from($validated['metric']))
->period(Period::from($validated['period']))
->aggregate();Popisy a hodnoty v API
value, values(), validationRule() a custom() vždy vracajú surové reťazce API. Líši sa len zobrazovaný popis: Metric, Interval, GoalType a FilterOperator ho odvodzujú z hodnoty (views_per_visit → Views Per Visit), zatiaľ čo Period, Dimension a Property — ktorých hodnoty sú skratky ako 7d alebo tokeny ns:field ako event:name — z názvu prípadu (SevenDays → Seven Days).
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.