PHP code example of spatie / laravel-stats
1. Go to this page and download the library: Download spatie/laravel-stats library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
spatie / laravel-stats example snippets
use Spatie\Stats\BaseStats;
class SubscriptionStats extends BaseStats {}
SubscriptionStats::increase(); // execute whenever somebody subscribes
SubscriptionStats::decrease() // execute whenever somebody cancels the subscription;
use Spatie\Stats\StatsQuery;
$stats = SubscriptionStats::query()
->start(now()->subMonths(2))
->end(now()->subSecond())
->groupByWeek()
->get();
[
[
'start' => '2020-01-01',
'end' => '2020-01-08',
'value' => 102,
'increments' => 32,
'decrements' => 20,
'difference' => 12,
],
[
'start' => '2020-01-08',
'end' => '2020-01-15',
'value' => 114,
'increments' => 63,
'decrements' => 30,
'difference' => 33,
],
]
use Spatie\Stats\BaseStats;
class SubscriptionStats extends BaseStats {}
use Spatie\Stats\BaseStats;
class SubscriptionStats extends BaseStats
{
public function getName() : string{
return 'my-custom-name'; // stats will be stored with using name `my-custom-name`
}
}
SubscriptionStats::increase(); // execute whenever somebody subscribes
SubscriptionStats::decrease(); // execute whenever somebody cancels the subscription;
$count = AnAPi::getSubscriptionCount();
SubscriptionStats::set($count);
SubscriptionStats::increase(1, $subscription->created_at);
$stats = SubscriptionStats::query()
->start(now()->subMonths(2))
->end(now()->subSecond())
->groupByWeek()
->get();
// output of $stats->toArray():
[
[
'start' => '2020-01-01',
'end' => '2020-01-08',
'value' => 102,
'increments' => 32,
'decrements' => 20,
'difference' => 12,
],
[
'start' => '2020-01-08',
'end' => '2020-01-15',
'value' => 114,
'increments' => 63,
'decrements' => 30,
'difference' => 33,
],
]
StatsWriter::for(MyCustomModel::class)->set(123)
StatsWriter::for(MyCustomModel::class, ['custom_column' => '123'])->increase(1)
StatsWriter::for(MyCustomModel::class, ['another_column' => '234'])->decrease(1, now()->subDay())
$stats = StatsQuery::for(MyCustomModel::class)
->start(now()->subMonths(2))
->end(now()->subSecond())
->groupByWeek()
->get();
// OR
$stats = StatsQuery::for(MyCustomModel::class, ['additional_column' => '123'])
->start(now()->subMonths(2))
->end(now()->subSecond())
->groupByWeek()
->get();
$tenant = Tenant::find(1)
StatsWriter::for($tenant->orderStats(), ['payment_type_column' => 'recurring'])->increment(1)
$stats = StatsQuery::for($tenant->orderStats(), , ['payment_type_column' => 'recurring'])
->start(now()->subMonths(2))
->end(now()->subSecond())
->groupByWeek()
->get();
bash
php artisan vendor:publish --provider="Spatie\Stats\StatsServiceProvider" --tag="stats-migrations"
php artisan migrate