jordanmiguel / laravel-popular by JordanMiguel

A Laravel package to track popularity of entries(by Models) in a website at a certain time.
8,981
64
5
Package Data
Maintainer Username: JordanMiguel
Package Create Date: 2017-09-01
Package Last Update: 2024-06-24
Language: PHP
License: MIT
Last Refreshed: 2024-11-23 03:04:45
Package Statistics
Total Downloads: 8,981
Monthly Downloads: 30
Daily Downloads: 1
Total Stars: 64
Total Watchers: 5
Total Forks: 31
Total Open Issues: 2

Laravel Popular (Laravel Popularity)

Latest Version on Packagist MIT licensed

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.

Usage

Use the visitable trait on the model you intend to track

use \JordanMiguel\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();

Install

Via Composer

$ composer require jordanmiguel/laravel-popular

If you're on Laravel <= 5.4 add 'JordanMiguel\LaravelPopular\LaravelPopularServiceProvider::class', in your config/app.php to the end of the $providers array

'providers' => array(

    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    ...
    'JordanMiguel\LaravelPopular\LaravelPopularServiceProvider::class',

),

Now, let's create our table on the database:

$ php artisan migrate

We're ready!

Testing

There is no test setup yet, please pull request if you do it =)

Contributing

Feel free to Pull Request anytime!

Author

License

The MIT License (MIT). Please see License File for more information.