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

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:

EnumPoužitieHodnoty
Metricmetrics() 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
Periodperiod() a rozsah dátumov vo v2day, 7d, 30d, month, 6mo, 12mo, year, all, custom
Intervalinterval() pre časové rady a rozpadyminute, hour, date, week, month
Propertyv1 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
Dimensionv2 dimensions() a where()všetky hodnoty Property, navyše visit:channel a časové úseky time:hour, time:day, time:week, time:month
FilterOperatorwhere() / orWhere()is, is_not, contains, contains_not, matches, matches_not, and, or, not, has_done, has_not_done
GoalTypeCreateGoalRequestevent, 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 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.