Skip to content

A Laravel package for tracking popular entries(by Models) of a website in a certain time

License

Notifications You must be signed in to change notification settings

jordanmiguel/laravel-popular

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Discontinued

This project is not maintained anymore. We encourage you to use another well maintained solution that can archieve everything in here: https://github.com/cyrildewit/eloquent-viewable

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->visitsBetween($from, $to);
$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::popularBetween($from, $to)->get(); // Get posts ordered by the most visited in a given interval date
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.

About

A Laravel package for tracking popular entries(by Models) of a website in a certain time

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages