Pada tutorial kali ini kita akan membuat counter pengunjung website yang menggunakan Laravel sebagai framework CMS-nya. Library yang kita gunakan adalah Laravel Visits yang dibuat oleh awssat, di Github. Laravel Visits menyimpan statistik yang diolah dan direkamnya pada database Redis. Jadi wajib server sampeyan sudah terpasang Redis.

Untuk fitur dari Laravel Visits ini antara lain:

  • model item yang bisa disesuaikan dengan kunjungan yang direkam menggunakan tag-tag khusus
  • tidak terbatas pada satu model counter,
  • rekam per visitor dan tidak melulu menggunakan deteksi ip address

Instalasi

Untuk instalasinya sendiri, sudah mendukung penggunaan Composer. Jadi tinggal ketik saja perintah

composer require awssat/laravel-visits

Konfigurasi Database Redis

Bagi yang sudah biasa konfigurasi Redis, silakan dilewati saja gan. Sampeyan terusin baca yang lain saja.

Buka file config/database.php. Disana ada satu bagian khusus untuk konfigurasi Redis. Nah, otak-atik disitu saja, sesuaikan dengan konfigurasi masing-masing.

'redis' => [

    'client' => 'predis',

    'default' => [
        'host' => env('REDIS_HOST', 'localhost'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => 0,
    ],

],

tambahkan koneksi Redis baru:

'laravel-visits' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => 3, // anything from 1 to 15, except 0 (or what is set in default)
        ],

Simpan.

Buka file config/visits.php. Dan sesuaikan koneksinya:

'connection' => 'default'

Penggunaan

Untuk penggunaanya, Laravel Visits sudah menyediakan helper function yang bisa kita panggil di View maupun di Controller.

Contohnya:

visits($model)->{method}()

dimana $model adalah model menggunakan Eloquent dalam project sampeyan, dan
{method} adalah method yang didukung oleh Library ini. Misalnya Increment, Decrement, tambah lebih satu (dll).

Contohnya:

visits($post)->increment(); // tambah visit counter 1 kali
#
visits($post)->increment(10); // tambah visit counter 10 kali
#
visits($post)->decrement(); // kurangi visit counter 1 kali
#
visits($post)->decrement(4); // kurangi visit counter 4 kali
#
visits($post)->seconds(30)->increment() // tambah visit counter 1 kali tiap 30 detik

Referensi lebih lanjut, silakan sampeyan baca-baca disini: https://github.com/awssat/laravel-visits