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 Menampilkan console terminal Pada Atom

Atom memiliki package yang membuat pengguna dapat menampilkan console terminal pada Atom sehingga pengguna tidak perlu lagi membuka command prompt Windows atau Terminal Mac. Anda bisa menggunakan package Atom "termination". Cara Install Termination Melalui Command Prompt Buka Command Prompt, ketik: apm install termination Jika terjadi error " apm is not recognized " pada saat menjalankan perintah apm install  berarti Anda belum memasukkan PATH Atom ke Environment Variables , silahkan baca:  cara atasi apm is not recognized Melalui Install Packages Alternatif lain selain menggunakan command prompt adalah melalui "Installed Packages" pada Atom. Buka menu Settings pada Atom, klik menu Packages , ketik " termination ". Setelah berhasil diinstall sumber: https://atom.io/packages/termination

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... ". ...