Di artikel inikita akan membahas tentang versi laravel terbaru yaitu Laravel 5.6 Telah Hadir Dan Apa Saja Fitur Terbarunya ?, Peluncuran Laravel 5.6 sekarang resmi tersedia sebagai versi utama dari framework Laravel ! Rilis ini memiliki banyak fitur baru, dan saya telah menyoroti fitur yang menonjol di sini. Untuk daftar lengkap semua perubahan, kunjungi changelog (GitHub).
Logging Improvements
Fitur terbesar dalam rilis Laravel 5.6 adalah perbaikan logging. Sebagai permulaan, konfigurasi logging v5.6 bergerak dari file config / app.php ke file config / log.php yang baru. Anda mengkonfigurasi “stacks” yang bisa mengirim pesan log ke beberapa penanganan. Misalnya, Anda dapat mengirim semua pesan debug ke log sistem dan mengirim log kesalahan untuk kendur. Baca lebih lanjut tentang cara mengkonfigurasi dan menyesuaikan log dengan mengunjungi dokumentasi logging.
Single Server Task Scheduling
Jika kita memiliki sebuah task scheduler di beberapa server, tiap-tiap task tersebut akan berjalan di servernya masing-masing. Kita bisa mengatur agar task tersebut hanya berjalan di salah satu server saja dengan method onOneServer():
|
1 2 3 4 |
$schedule->command('report:generate') ->fridays() ->at('17:00') ->onOneServer(); |
Catatan: Kita harus menggunakan memcached atau redis driver agar driver cache bawaan bisa memakai fitur single server task scheduling di Laravel 5.6 ini
Dynamic Rate Limiting
laravel 5.6 memperkenalkan dynamic rate limiting yang memberi Anda lebih banyak fleksibilitas dan memungkinkan untuk menilai dengan mudah batas per pengguna:
|
1 2 3 4 5 6 |
Route::middleware('auth:api', 'throttle:rate_limit,1') ->group(function () { Route::get('/user', function () { // }); }); |
Pada contoh di atas, rate_limit adalah atribut dari model App \ User untuk menentukan jumlah permintaan yang diperbolehkan dalam batas waktu yang diberikan.
Broadcast Channel Classes
Sekarang kita bisa menggunakan channel classes di file routes/channels.php daripada menggunakan closures. Untuk membuat kelas channel baru, Laravel 5.6 memberikan perintah make:channel:
|
1 |
php artisan make:channel OrderChannel |
Lalu kita daftarkan channel tersebut ke routes/channels.php:
|
1 2 3 |
use App\Broadcasting\OrderChannel; Broadcast::channel('order.{order}', OrderChannel::class); |
API Controller Generation
Kita sekarang bisa membuat resource controller untuk API yang akan mengabaikan aksi create dan edit yang tidak perlu sehingga hanya berguna untuk membuat resource controller yang mengembalikan HTML. Untuk membuat sebuah resource controller gunakan flag –api:
|
1 |
php artisan make:controller API/PhotoController --api |
Eloquent Date Casting
Anda bisa mengcostumise sendiri format dari eloquent date dan datetime casting:
|
1 2 3 4 |
protected $casts = [ 'birthday' => 'date:Y-m-d', 'joined_at' => 'datetime:Y-m-d H:00', ]; |
Blade Component Aliases
Sekarang kita bisa memberikan alias kepada komponen Blade untuk mempermudah akses. Misal, jika kita menyimpan sebuah komponen di resources/views/components/alert.blade.php kita bisa memakai method compoenent() untuk memendekkannya:
|
1 |
Blade::component('components.alert', 'alert'); |
Lalu kita bisa me-render file blade tadi dengan lias yang sudah dibuat:
|
1 2 3 |
@component('alert') <p>This is an alert component</p> @endcomponent |
Argon2 Password Hashing
Laravel 5.6 mendukung algoritma hashing baru untuk PHP 7.2+. Kita bisa mengontrol driver hashing mana yang dipakai di file config/hashing.php.
UUID Methods
Dua metode baru sekarang tersedia di kelas Illuminate \ Support \ Str untuk menghasilkan Universal Unique Identifier (UUID):
|
1 2 3 4 5 |
// The methods return a Ramsey\Uuid\Uuid object return (string) Str::uuid(); return (string) Str::orderedUuid() |
Method orderedUuid() akan membuat sebuah UUID dengan timstamp untuk mempermudah dan mengefisienkan index di database.
Bootstrap 4
Semua scaffolding frontend (kode-kode yang di-generate) dan contoh komponen Vue sekaran gmenggunakan Bootstrap 4.