Skip to main content

Cara Buat Helper Functions Sendiri di Laravel 5.4

Buat folder baru di dalam folder app, beri nama foldernya misalnya Helpers. Di dalam folder Helpers bikin satu file misal nama file-nya adalah General.php. Kita akan membuat Class General di dalam General.php. Sebagai contoh kita akan membuat function untuk memanggil jenis dan versi Browser yang digunakan user.

<?php 

namespace App\Helpers;

class General 
{
    public static function getBrowser()
 {
     $u_agent = $_SERVER['HTTP_USER_AGENT'];
     $bname = 'Unknown';
     $platform = 'Unknown';
     $version= "";

     $os_array = array(
       '/windows nt 10.0/i'     =>  'Windows 10',
       '/windows nt 6.3/i'     =>  'Windows 8.1',
       '/windows nt 6.2/i'     =>  'Windows 8',
       '/windows nt 6.1/i'     =>  'Windows 7',
       '/windows nt 5.2/i'     =>  'Windows Server 2003/XP x64',
       '/windows nt 5.1/i'     =>  'Windows XP',
       '/windows xp/i'         =>  'Windows XP',
       '/macintosh|mac os x/i' =>  'Mac OS X',
       '/mac_powerpc/i'        =>  'Mac OS 9',
       '/linux/i'              =>  'Linux',
       '/ubuntu/i'             =>  'Ubuntu',
       '/iphone/i'             =>  'iPhone',
       '/ipod/i'               =>  'iPod',
       '/ipad/i'               =>  'iPad',
       '/android/i'            =>  'Android',
       '/blackberry/i'         =>  'BlackBerry',
       '/webos/i'              =>  'Mobile'
     );

     foreach ($os_array as $regex => $value) {
         if (preg_match($regex, $u_agent)) {
          $platform    =   $value;
         }
     }

  // Next get the name of the useragent yes seperately and for good reason
  if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent))
  {
      $bname = 'Internet Explorer';
      $ub = "MSIE";
  }
  elseif(preg_match('/Firefox/i',$u_agent))
  {
   $bname = 'Mozilla Firefox';
   $ub = "Firefox";
  }
  elseif(preg_match('/Chrome/i',$u_agent))
  {
      $bname = 'Google Chrome';
      $ub = "Chrome";
  }
  elseif(preg_match('/Safari/i',$u_agent))
  {
      $bname = 'Apple Safari';
      $ub = "Safari";
  }
  elseif(preg_match('/Opera/i',$u_agent))
  {
      $bname = 'Opera';
      $ub = "Opera";
  }
  elseif(preg_match('/Netscape/i',$u_agent))
  {
      $bname = 'Netscape';
      $ub = "Netscape";
  }

  $known = array('Version', $ub, 'other');
  $pattern = '#(?' . join('|', $known) .
  ')[/ ]+(?[0-9.|a-zA-Z.]*)#';
  if (!preg_match_all($pattern, $u_agent, $matches)) {
      
  }

  $i = count($matches['browser']);
  if ($i != 1) {
      if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
          $version= $matches['version'][0];
      }
      else {
          $version= $matches['version'][1];
      }
  }
  else {
      $version= $matches['version'][0];
  }

  if ($version==null || $version=="") {$version="?";}

  return array(
      'userAgent' => $u_agent,
      'name'      => $bname,
      'ub'        => $ub,
      'version'   => $version,
      'platform'  => $platform,
      'pattern'    => $pattern
  );
 }
}


Setelah itu tambahkan autoload path file dari General.php di composer.json, sehingga pada autoload composer.json setelah ditambahkan menjadi seperti dibawah ini:

"autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/Helpers/General.php" 
        ]
    },

Buka Terminal atau Command Prompt, arahkan pada direktori tempat kita meletakkan project Laravel. Jika anda bekerja dengan Windows dan Xampp, anda bisa menggunakan perintah berikut untuk menuju ke direktori projectmu di htdocs Xampp:
cd c:\xampp/htdocs/nama_projectmu

Kemudian ketik perintah composer berikut untuk men-dump autoloader:
composer dump-autoload

Tambahkan Helper yang tadi kita buat pada aliases di config/app.php. Jadi, anda buka app.php yang ada di folder config, tambahkan baris berikut:
'General' => App\Helpers\General ::class,
Sehingga pada aliases di app.php menjadi seperti berikut:

    'aliases' => [
        'App' => Illuminate\Support\Facades\App::class,
        'Artisan' => Illuminate\Support\Facades\Artisan::class,
        'Auth' => Illuminate\Support\Facades\Auth::class,
        'Blade' => Illuminate\Support\Facades\Blade::class,
        'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
        'Bus' => Illuminate\Support\Facades\Bus::class,
        'Cache' => Illuminate\Support\Facades\Cache::class,
        'Config' => Illuminate\Support\Facades\Config::class,
        'Cookie' => Illuminate\Support\Facades\Cookie::class,
        'Crypt' => Illuminate\Support\Facades\Crypt::class,
        'DB' => Illuminate\Support\Facades\DB::class,
        'Eloquent' => Illuminate\Database\Eloquent\Model::class,
        'Event' => Illuminate\Support\Facades\Event::class,
        'File' => Illuminate\Support\Facades\File::class,
        'Gate' => Illuminate\Support\Facades\Gate::class,
        'Hash' => Illuminate\Support\Facades\Hash::class,
        'Lang' => Illuminate\Support\Facades\Lang::class,
        'Log' => Illuminate\Support\Facades\Log::class,
        'Mail' => Illuminate\Support\Facades\Mail::class,
        'Notification' => Illuminate\Support\Facades\Notification::class,
        'Password' => Illuminate\Support\Facades\Password::class,
        'Queue' => Illuminate\Support\Facades\Queue::class,
        'Redirect' => Illuminate\Support\Facades\Redirect::class,
        'Redis' => Illuminate\Support\Facades\Redis::class,
        'Request' => Illuminate\Support\Facades\Request::class,
        'Response' => Illuminate\Support\Facades\Response::class,
        'Route' => Illuminate\Support\Facades\Route::class,
        'Schema' => Illuminate\Support\Facades\Schema::class,
        'Session' => Illuminate\Support\Facades\Session::class,
        'Storage' => Illuminate\Support\Facades\Storage::class,
        'URL' => Illuminate\Support\Facades\URL::class,
        'Validator' => Illuminate\Support\Facades\Validator::class,
        'View' => Illuminate\Support\Facades\View::class,
        'SigerHelper' => App\Helpers\SigerHelper ::class,
    ],

Kita sudah bisa memanggil Helper yang kita buat, jangan lupa sebelum menggunakannya, kita tulis :

use General;


Berikut ini merupakan contoh pemanggilan function General dalam method index:

public function index()
    {
        $browser = SigerHelper::getBrowser();
        $browser = $browser['name'].' '.$browser['version'];
        dd($browser);
        return view('/home');
    }


Comments

Popular posts from this blog

Cara Menginstall Framework Laravel 5.4

Menginstal Framework Laravel bukan pekara sulit, namun bagi pemula yang belum terlalu familiar dengan composer tentu akan mengalami kesulitan sebab untuk dapat menginstal Laravel kita harus memiliki composer yang sudah terinstall di komputer kita. Jika composer sudah terinstall di komputer anda, perhatikann versi PHP yang anda gunakan, jika anda menggunakan XAMPP terbaru anda tidak akan mengalami masalah sebab versi minimal PHP yang harus digunakan untuk menjalankan Laravel adalah versi 5.6.4. Menginstal Laravel bisa menggunakan dua cara. Kedua-duanya mengharuskan anda untuk membuka Terminal atau Command Prompt, anda akan lebih banyak bermain dengan barisan perintah di console. Cara pertama buka command prompt anda (karena saya pengguna Windows) kemudian ketik perintah berikut: composer global require "laravel/installer" Tunggu hingga proses selesai karena penginstalan cukup menyita waktu sesuai dengan kecepatan internet anda. Jika sudah selesai, jika anda pengguna XAM...

Cara Menampilkan Isi File TXT di Laravel 5.4

Gunakan kode berikut ini untuk menampilkan konten atau isi file .txt: File::get('lokasi file'); Perlu diperhatikan dimana anda meletakkan file .txt yang ingin anda tampilkan. Sebagai contoh, sebuah file .txt yang ingin ditampilkan berada di dalam folder storage/app, maka lokasi filenya anda tulis storage_path('myfolder/test.txt') sehingga untuk kode diatas menjadi: File::get(storage_path('app/yourfile.txt')); Tulis pada controller anda: public function index() { $file = File::get(storage_path('app/yourfile.txt')); return view('file' => $file]); } Jangan lupa panggil use \File di bawah namespace. Untuk menampilkannya di view, anda bisa menggunakan kode blade berikut: {{ $file }} Sumber: Read a TXT File in Laravel 5 Laravel 5 Class 'App\Http\Controllers\File' not foundLaravel 5 Class app  

Error: 'apm' is not recognized as an internal or external command, operable program or batch file

Pernahkah anda menginstall package Atom dengan perintah "apm install ..." pada command prompt kemudian terjadi error " 'apm' is not recognized as an internal or external command, operable program or batch file" ? Jika itu terjadi pada anda, berarti anda belum memasukkan PATH apm pada "environment variables" sehingga perintah apm tidak dikenal oleh command prompt. Pada Windows, PATH apm terletak di C:\Users\ yourname \AppData\Local\atom\bin. Sesuaikan yourname dengan komputer anda. Agar Anda dapat melihat folder AppData yang secara default ter-hidden, Anda harus men-ceklis " hidden items " pada tab view. Kemudian, Anda buka jendela "System" yang bisa dilakukan dengan klik kanan pada "This PC", pilih Properties. Setelah jendela System terbuka, klik " Advanced system settings " sehingga akan muncul jendela " System Properties ". Klik tombol " Environment Variables... ". ...