Yang Baru Pada Laravel 5.6
Laravel 5.6 - Laravel versi 5.6 baru dirilis sebagai versi mayor framework laravel saat ini. Versi Laravel yang terbaru ini membawa banyak fitur, dan kali ini kita akan membahas fitur-fitur yang dibawah oleh Laravel 5.6
Disana kita bisa mengatur "stacks" yang mana dapat mengirimkan pesan log ke beberapa handler. Contohnya, kalian ingin mengirimkan pesan debug ke system log dan juga mengirimkan error log ke slack.
Logging Improvements
Fitur yang paling besar yang disediakan oleh Laravel 5.6 adalah peningkatan logging. Dimana konfigurasinya dipindahkan dari config/app.php menjadi config/logging.php.Disana kita bisa mengatur "stacks" yang mana dapat mengirimkan pesan log ke beberapa handler. Contohnya, kalian ingin mengirimkan pesan debug ke system log dan juga mengirimkan error log ke slack.
Single Server Task Scheduling
Jika kalian memiliki task scheduler yang berada di beberapa server, dimana setiap task tersebut akan berjalan sesuai dengan servernya masing-masing. Kalian bisa saja mengatur agar task tersebut hanya dapat pada satu server saja, yakni menggunakan method onOneServer().Kalian diharuskan menggunakan driver memcached atau redis agar drive bawaan laravel ini dapat menggunakan fitur dari single server task scheduling pada Laravel versi 5.6 ini.
$schedule->command('report:generate')
->monday()
->at('19.00')
->onOneServer();
Dynamic Rate Limiting
Laravel versi 5.6 ini memperkenalkan dynamic rate limiting yang memberikan sebuah fleksibilitas dan memungkinkan kalian memberikan rate untuk setiap user dengan mudahContoh diatas tersebut, rate_limit merupakan sebuah atribut dari model App\User yang digunakan untuk menentukan jumlah request yang diperbolehkan untuk User pada waktu yang telah ditentukan.
Route::middleware('auth:api','throttle:rate_limit,1')
->group(function(){
Route::get('/user',function(){
//
});
});
Broadcast Channel Classes
Saat ini kalian dapat menggunakan channel classes pada file route/channels.php daripada kalian menggunakan closures. Untuk membuat class channel yang baru, di Laravel 5.6 ini kita dapat memberikan perintah make:channel :Selanjutnya kalian daftarkan channel diatas ke dalam file route/channels.php:
php artisan make:channel MemberChannel
use App\Broadcasting\MemberChannel;
Broadcast::channel('member.{member}',MemberChannel::class);
API Controller Generation
Sekarang kalian bisa membuat resource controller untuk sebuah API yang mana resource tersebut mengabaikan aksi create dan edit yang tidak diperlukan. Sehingga create dan edit tersebut hanya berguna untuk resource controller yang mengembalikan HTML. Untuk membuat resource controller untuk keperluan API gunakanlah flag --api, seperti berikut:
php artisan make:controller API/UserController --api
Eloquent Date Casting
Kalian dapat mengkostumisasi format dari tanggal (date) Eloquent dan casting datetime secara sendiri:Format ini digunakan pada model serialization untuk sebuah data array atau data JSON.
protected $casts=[
'date_of_birth'=>'date:Y-m-d',
'created_at'=>'datetime:Y-m-d H:00'
];
Blade Component Aliases
Pada Laravel 5.6 ini kalian dapat memberikan alias kepada komponen dari Blade untuk memudahkan kalian mengaksesnya. Contohnya, jika kalian ingin menyimpan komponen pada resources/views/components/warning.blade.php kalian dapat menggunakan method component() untuk mengaliaskannya.Selanjutnya kalian dapat merender file blade tadi denga alias yang telah kalian buat :
Blade::component('component.warning','warning');
@component('warning')
<p> Ini adalah komponen warning</p>
@endcomponent
Argon2 Password Hashing
Laravel 5.6 kini telah mendukung algoritma hasing terbaru untuk PHP 7.2 keatas. Kalian dapat mengontrol setiap driver hasing yang ingin kalian gunakan pada file config/hashing.php.UUIID Methods
Kini tersedia dua method baru yang disediakan Laravel 5.6 pada Illuminate\Supports\Str, yakni untuk membuat Universal Unique Indetifier(UUID) menggunakan method uuid() dan untuk membuat UUID dengan timestamp yang akan memudahkan dan mengefisiensikan index pada database digunakan method orderedUuid().
return (string) Str::uuid();
return (string) Str::orderedUuid();