laravel

Membuat Custom Helper Sendiri di Laravel

Januari 05, 2024
0 Komentar
Beranda
laravel
Membuat Custom Helper Sendiri di Laravel

Pernah dengar istilah custom helper di laravel? saya rasa sudah tidak asing untuk para developer laravel. Contohnya seperti gambar di bawah ini:

generateRandomCode('EN', 8); 

merupakan function yang dibuat sendiri dan bisa di akses pada semua file php di project laravel kita. Bagaimana membuat ini? mari kita bereksperiment :

Buat file Helpers.php pada path app/Helpers.php

Buatlah file bernama Helpers.php pada path app/Helpers.php, ingat perhatikan case-sensitivnya penulisan helpers.php dengan Helpers.php , mungkin di local development ini bisa running well, namun belum tentu di production. Karena itu sudah hal yang berbeda.

  
<?php

use Illuminate\Support\Str;

if (!function_exists('generateRandomCode')) {
    /**
     * Generates a random code by combining the current date and a random string.
     *
     * @return string The generated random code.
     */
    function generateRandomCode($prefix = null, $length = 4): string
    {
        // Get the current date in the format 'Ymd'
        $currentDate = date('Ymd');

        // Generate a random string of length 4
        $randomString = strtoupper(Str::random($length));

        // Combine the current date and the random string
        $randomCode = $currentDate . $randomString;
        if (!is_null($prefix)) {
            $randomCode = $prefix . $randomCode;
        }
        return $randomCode;
    }
}
  
  


Di atas merupakan contoh kode dari function generateRandomCode(), tentu ini bisa disesuaikan dengan yang kita butuhkan.

Tambahkan file Helpers.php pada file composer.json

  
{
  "autoload": {
    "psr-4": {
      "App\\": "app/",
      "Database\\Factories\\": "database/factories/",
      "Database\\Seeders\\": "database/seeders/"
    },
    "files": ["app/Helpers.php"] // <-- tambahkan ini
  },
  "autoload-dev": {
    "psr-4": {
      "Tests\\": "tests/"
    },
    "files": ["app/Helpers.php"] // <-- tambahkan ini
  }
}
  
  

fokus pada baris kode yang saya berikan tanda // <-- tambahkan ini, ini yang harus kita tambahkan di file composer.json. Berdasarkan pengalaman saya autoload dan autoload-dev ini berbeda, kurang lebih seperti ini:

autoload : berjalan untuk production
autoload-dev : berjalan untuk development
efeknya apa, jika kita hanya menuliskan di satu sisi saja, semisal hanya di autoload-dev, mungkin saat development di local itu running well, namun saat naik ke production pasti akan muncul error undefined. Karena dianggap helper tidak pernah ada di production.

Running Autoload nya

Buka terminal dan run composer dump-autoload. Finnaly, kita dapat memanggil custom function dari Helpers seperti ini :
  
$newTrx = new ProductTransaction();
$newTrx->code = generateRandomCode('EN', 8); // <- ini
  
  

Contoh pemanggilan generateRandomCode() pada controller. Gimana, menarik bukan?

Selamat bereksperiment.

Tidak ada komentar