A Laravel package to track popularity of entries(by Models) in a website at a certain time.
wanderreisen/laravel-popular is a Laravel package for a laravel package to track popularity of entries(by models) in a website at a certain time..
It currently has 1 GitHub stars and 90 downloads on Packagist (latest version 1.0.6).
Install it with composer require wanderreisen/laravel-popular.
Discover more Laravel packages by wanderreisen
or browse all Laravel packages to compare alternatives.
Last updated
With Laravel Popular Package you can Track your most popular Eloquent Models based on unique hits in a time range and then sort by popularity in a time frame.
Use the visitable trait on the model you intend to track
use \Wanderreisen\LaravelPopular\Traits\Visitable;
class Post extends Model
{
use Visitable;
...
}
Here are some code examples:
// Adding a visit to the post. Recommended on the show() method of your controller.
$post->visit();
// Retrieving the count of visitors in a timeframe
$post->visitsDay();
$post->visitsWeek();
$post->visitsMonth();
$post->visitsForever();
// Ordering the posts by the most visited
Posts::popularLast(3)->get(); // Get popular posts on the last 3 days
Posts::popularDay()->get(); // Get posts ordered by the most visited on the last 24h
Posts::popularWeek()->get();
Posts::popularMonth()->get();
Posts::popularYear()->get();
Posts::popularAllTime()->get();
Via Composer
$ composer require wanderreisen/laravel-popular
If you're on Laravel <= 5.4 add 'Wanderreisen\LaravelPopular\LaravelPopularServiceProvider::class', in your config/app.php to the end of the $providers array
'providers' => array(
'Illuminate\Foundation\Providers\ArtisanServiceProvider',
'Illuminate\Auth\AuthServiceProvider',
...
'Wanderreisen\LaravelPopular\LaravelPopularServiceProvider::class',
),
Now, let's create our table on the database:
$ php artisan migrate
We're ready!
There is no test setup yet, please pull request if you do it =)
Feel free to Pull Request anytime!
The MIT License (MIT). Please see License File for more information.