• Stars
    star
    516
  • Rank 85,726 (Top 2 %)
  • Language
    PHP
  • License
    MIT License
  • Created about 5 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

a laravel package to work with visitors and retrieve their informations

Laravel Visitor

This is a laravel package to extract and access visitors' information such as browser, ip, device and etc.

In this package, you can recognize online users and determine if a user is online or not

Install

Via composer

composer require shetabit/visitor

Configure

If you are using Laravel 5.5 or higher then you don't need to add the provider and alias.

# In your providers array.
'providers' => [
    ...
    Shetabit\Visitor\Provider\VisitorServiceProvider::class,
],

# In your aliases array.
'aliases' => [
    ...
    'Visitor' => Shetabit\Visitor\Facade\Visitor::class,
],

Then, run the below commands to publish migrations and create tables

php artisan vendor:publish

php artisan migrate

How to use

You can access to visitor's information using $request->visitor() in your controllers , and you can access to the visitor's information using visitor() helper function any where.

We have the below methods to retrieve a visitor's information:

  • device : device's name
  • platform : platform's name
  • browser : browser's name
  • languages : language's name
  • ip : client's ip
  • request : the whole request inputs
  • useragent : the whole useragent
  • isOnline : determines if current (or given) user is online
$request->visitor()->browser(); // firefox
$request->visitor()->visit($post); // create log for post
$request->visitor()->setVisitor($user)->visit($post); // create a log which says $user has visited $post

Store Logs

You can create logs using the visit method like the below

visitor()->visit(); // create a visit log

use Shetabit\Visitor\Traits\Visitable trait in your models, then you can save visit's log for your models like the below

// or you can save log like the below
visitor()->visit($model);
// or like the below
$model->createVisitLog();

// you can say which user has visited the given $model
$model->createVisitLog($user);
// or like the below
visitor()->setVisitor($user)->visit($model);

Model views can be loaded using visits relation.

You can count model visits like the below

$model->visitLogs()->count();

unique users can be counted by their IP and by model.

// by ip
$model->visitLogs()->distinct('ip')->count('ip');

// by user's model
$model->visitLogs()->visitor()->count();

use Shetabit\Visitor\Traits\Visitor in your User class, then you can run below codes

$user->visit(); // create a visit log
$user->visit($model); // create a log which says, $user has visited $model

Retrieve and Determine Online users

use Shetabit\Visitor\Traits\Visitor in your User class at first.

Then you can retrieve online users which are instance of User class and determine if a user is online.

visitor()->onlineVisitors(User::class); // returns collection of online users
User::online()->get(); // another way

visitor()->isOnline($user); // determines if the given user is online
$user->isOnline(); // another way

Automatic logging

Your application can store visitor's log automatically using LogVisits middleware.

Add the Shetabit\Visitor\Middlewares\LogVisits middleware if you want to save logs automatically.

The middleware will store logs for models which has binded in router (router model binding) and has used Shetabit\Visitor\Traits\Visitable trait.

Star History

Star History Chart

More Repositories

1

payment

simple laravel payment package , supports multiple drivers
PHP
812
star
2

multipay

simple PHP payment package , supports multiple drivers
PHP
250
star
3

extractor

communicate with remote servers or microservices in an easy way
PHP
93
star
4

token-builder

a laravel package to generate temporary tokens/pins
PHP
19
star
5

chunky

a pure php package to handle chunk file uploads
PHP
16
star
6

blazing-git

git tutorial without shits
12
star
7

php-simple-zip-exctractor

Upload and extract a zip file into a directory with authentication
PHP
9
star
8

AES

Encrypt and Decrypt data with AES algorithm
PHP
8
star
9

stampable

a Laravel Package for adding stamp behaviors into laravel models.
PHP
6
star
10

sms

Laravel Package for SMS Gateway Integration
PHP
5
star
11

basic-coding-standards

5
star
12

kavenegarsms

Send SMS with Kavengar RESTFUL Api
PHP
5
star
13

ubuntu-practical

Practical Ubuntu linux commands
5
star
14

crypto

a package to encrypt and decrypt data using asymmetric cryptography algorithms
PHP
5
star
15

transformer

transform array keys in an easy way
PHP
5
star
16

module-generator

Laravel module and crud generator
PHP
4
star
17

helper

This Package helps developers to work with custom helpers
PHP
4
star
18

workshop

PHP
3
star
19

page-builder

PHP
3
star
20

captcha

laravel captcha supports multiple drivers
PHP
3
star
21

programming-congregations

آرشیو همایش های برگزار شده توسط گروه شتاب تحت نام شتاب آموز
2
star
22

base

JavaScript
2
star
23

response-cache

Response Cache
PHP
2
star
24

response

PHP
2
star
25

admission

laravel advanced ACL (access control list) package
PHP
2
star
26

gopay

a multi gateway payment package for Golang
1
star
27

laravel-vue-pagination

This is a fork of gilbitron/laravel-vue-pagination with additional features
Vue
1
star
28

transform-request

laravel request transformer
PHP
1
star