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

Výstup a výsledky

toArray() vráti na každej metrike rovnakú obálku, takže frontend vykreslí každú dlaždicu jedným komponentom:

[
    'name' => 'New users',            // name(), or the humanized class name
    'description' => '',              // description()
    'prefix' => '',                   // prefix()
    'suffix' => '',                   // suffix()
    'range' => [
        'current' => 'TODAY',         // the selected Period value
        'available' => ['7' => '7 Days', '14' => '14 Days', /* … */ 'ALL' => 'All'],
        'custom' => ['start' => null, 'end' => null],
    ],
    'result' => [                     // the type-specific result
        'value' => 42.0,
        'previous' => 30.0,
        'change' => ['percentage' => 40.0, 'is_increase' => true],
    ],
]

Tvary výsledkov

Blok result je vlastné Result::toArray() metriky, doplnené o položku formatted, ak je nastavené formatUsing():

// Value — without a comparison, 'previous' and 'change.percentage' are null
['value' => 42.0, 'previous' => 30.0, 'change' => ['percentage' => 40.0, 'is_increase' => true]]

// Trend — 'series' only when grouped with groupBy()
['trends' => ['2024-06-01' => 12.0, '2024-06-02' => 0.0], 'series' => [/* … */]]

// Progress
[
    'value' => 8200.0, 'progress' => 82.0,
    'previous' => 6500.0, 'previous_progress' => 65.0,
    'target' => 10000.0, 'avoid' => false,
    'change' => ['percentage' => 26.0, 'is_increase' => true, 'progress' => 17.0, 'value' => 1700.0],
]

// Partition — 'labels' only with labelUsing()
['partitions' => ['pro' => 120.0, 'free' => 80.0], 'labels' => ['pro' => 'Pro', 'free' => 'Free']]

Typované objekty výsledkov

result() vráti výsledok každého typu ako typovaný objekt implementujúci RoundlyConsulting\Metrics\Types\Result. Typované základy zužujú návratový typ — result() na metrike Value je ValueResult, na metrike Progress ProgressResult (ktorý je zároveň ValueResult) a tak ďalej. Okrem toArray() ponúka každý gettery pre konzumentov grafov:

VýsledokPrístupové metódy
ValueResultvalue(), previous(), change(), isIncrease()
TrendResulttrends(), series(), labels(), values()
ProgressResultvalue(), progress(), target(), previous(), previousProgress(), change(), avoid(), isIncrease()
PartitionResultpartitions(), labels(), keys(), values()

Result::fromArray() zostaví výsledok späť z jeho poľa — cache výsledkov ukladá obyčajné dáta a result() z nich obnoví typovaný objekt:

use RoundlyConsulting\Metrics\Types\Value\ValueResult;

$array = Metrics::value()->count(User::query())->result()->toArray();

ValueResult::fromArray($array);   // rebuilds the typed object — how cached results come back

JSON odpovede

Metriky aj dashboardy implementujú Illuminate\Contracts\Support\Responsable — toResponse() zabalí toArray() do JsonResponse, takže ich stačí vrátiť z controllera.

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.