jordanmiguel / laravel-popular
A Laravel package to track popularity of entries(by Models) in a website at a certain time.
Installs: 8 980
Dependents: 1
Suggesters: 0
Security: 0
Stars: 64
Watchers: 5
Forks: 31
Open Issues: 2
Requires
- php: ~5.6|^7.2|^8.0
- illuminate/support: 5.1.* || 5.2.* || 5.3.* || 5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || ^6.0 || ^7.0 || ^8.0 || ^9.0
Requires (Dev)
- phpunit/phpunit: >=5.4.3
- squizlabs/php_codesniffer: ^2.3
README
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.