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.
Setelah itu tambahkan autoload path file dari General.php di composer.json, sehingga pada autoload composer.json setelah ditambahkan menjadi seperti dibawah ini:
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:
Kemudian ketik perintah composer berikut untuk men-dump autoloader:
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:
Kita sudah bisa memanggil Helper yang kita buat, jangan lupa sebelum menggunakannya, kita tulis :
Berikut ini merupakan contoh pemanggilan function General dalam method index:
<?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
Post a Comment