tech

Table of Content

Introduction

Laravel hadir dengan berbagai macam Helpers, seperti: penggunaan DB, session, dan masih banyak sebagainya. Pada dasarnya, helpers dapat digunakan darimanapun atau biasa dikenal Global Function. Namun bagaimana jika helpers yg sesuai dengan kebutuhan anda tidak tersedia?

Solusinya adalah kamu bisa membuat helpers sendiri sesuai kebutuhan kamu. Sebagai contoh saya ingin track aktifitas semua user. Entah itu dia sedang login hingga logout.

Membuat Helpers

Silahkan buat folder Helpers dalam folder App dengan nama file RecordActivity.php. Ketik code berikut :

<?php
namespace App\Helpers;
 
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
 
class RecordActivity {
    public static function track($do)
    {
        \DB::table('activity')->insert([
            'id_user' => Auth::user()->id,
            'activity' => $do,
            'created_at' => now()
        ]);
    }
}

Sebelum dapat digunakan secara global, kita harus menempatkan nya kedalam service provider.

  • php artisan make:provider UserServiceProvider

Register in Service Provider

Langkah selanjutnya, register helpers kamu di service provider -> App\Providers\UserServiceProvider.php.

public function register()
{
	require_once app_path() . '/Helpers/RecordActivity.php';
}

Make It Global!

buka folder config/app.php dan masukkan UserServiceProvider kamu kedalam :

  1. Providers
  2. Aliases
'providers' => [
	.........................
	App\Providers\UserServiceProvider::class,
],
 
'aliases' => [
	'Record' => App\Helpers\RecordActivity::class,
]

The Controllers

use App\Helpers\RecordActivity;
 
// Record to Activity
RecordActivity::track('Login');

Shortcut

Jika ingin menggunakan cara lain, kamu dapat langsung mengakses aliases dengan menambahkan backslash (''')

\Record::track('Login');