seyamms / laravel-visit
Laravel package for counting model visits
Fund package maintenance!
SeyamMs
Requires
- php: ^8.1|^8.2|^8.3
- illuminate/contracts: ^10.0||^11.0
- jenssegers/agent: ^2.6
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
README
This package is intended to count visits of model records with some sort of uniqueness factors (see the config file).
Installation
You can install the package via composer:
composer require seyamms/laravel-visit
You can publish and run the migrations with:
php artisan vendor:publish --tag="laravel-visit-migrations"
php artisan migrate
You can publish the config file with:
php artisan vendor:publish --tag="laravel-visit-config"
After publishing the config you will have visit.php in your config directory the contains these options:
/** * available factors are: * ['ip_address', 'platform', 'device', 'browser', 'language'] * default: ['ip_address', 'platform'] */ 'factors' => [ 'ip_address', 'platform', // 'device', // 'browser', // 'language', ], // this accepts a valid carbon interval. // 1 day, 2 days, 1 week, 2 months ...etc // default: 1 day 'span' => '1 day',
Usage
just add Visitable trait to your model
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use SeyamMs\LaravelVisit\Traits\Visitable; class Page extends Model { use Visitable;
then you will have access to vzt() on each record that you can use to get the total visits count to that model or increment the counter upon page loading.
$page->vzt()->increment();
$page->vzt()->count()
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
- Mohammed Seyam
- All Contributors
- Special thanks to Spatie Team
License
The MIT License (MIT). Please see License File for more information.