Laravel 5.6 baru saja dirilis sebagai versi mayor framework ini! Rilis yang terbaru membawa banyak fitur dan artikel ini akan membahas fitur-fitur utamanya. Untuk daftar lengkap silahkan hubungi changelog Github.
Logging Improvements
Fitur paling besar yang ada di laravel 5.6 adalah peningkatan logging. Konfigurasinya dipindah dariconfig/app.php
ke config/logging.php
.Kita bisa mengatur sebuah "stacks" yang dapat mengirim pesan log ke beberapa handler. Misalnya, kita bisa mengirim pesan debug ke system log dan mengirim error log ke slack. Baca lebih lanjut tentang logging di sini.
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 methodonOneServer()
:$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 memberikan fleksibilitas dan memungkinkan kita memberi rate dengan mudah per-user: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 rikues yang diperbolehkan pada waktu yang diberikan.Broadcast Channel Classes
Sekarang kita bisa menggunakan channel classes di fileroutes/channels.php
daripada menggunakan closures.Untuk membuat kelas channel baru, Laravel 5.6 memberikan perintah
make:channel
:php artisan make:channel OrderChannel
Lalu kita daftarkan channel tersebut ke routes/channels.php
:use App\Broadcasting\OrderChannel;
Broadcast::channel('order.{order}', OrderChannel::class);
API Controller Generation
Kita sekarang bisa membuat resource controller untuk API yang akan mengabaikan aksicreate
dan edit
yang tidak perlu sehingga hanya berguna untuk membuat resource controller yang mengembalikan HTML. Untuk membuat sebuah resource controller gunakan flag --api:php artisan make:controller API/PhotoController --api
Eloquent Date Casting
Kita bisa mengkostumisasi format date Eloquent dan casting datetimg secara individu:protected $casts = [
'birthday' => 'date:Y-m-d',
'joined_at' => 'datetime:Y-m-d H:00',
];
Format ini dipakai pada model serialization ke sebuah array atau data JSON.Blade Component Aliases
Sekarang kita bisa memberikan alias kepada komponen Blade untuk mempermudah akses. Misal, jika kita menyimpan sebuah komponen diresources/views/components/alert.blade.php
kita bisa memakai method compoenent()
untuk memendekkannya:Blade::component('components.alert', 'alert');
Lalu kita bisa me-render file blade tadi dengan lias yang sudah dibuat:@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 fileconfig/hashing.php
.// baca juga
UUID Methods
Dua method baru tersedia diIlluminate\Support\Str
untuk membuat Universal Unique Identifiers (UUID):return (string) Str::uuid();
return (string) Str::orderedUuid();
Method orderedUuid()
akan membuat sebuah UUID dengan timstamp untuk mempermudah dan mengefisienkan index di database.Collision
Collision adalah fitur untuk memberikan pesan error yang enak dilihat langsung di terminal.Bootstrap 4
Semua scaffolding frontend (kode-kode yang di-generate) dan contoh komponen Vue sekaran gmenggunakan Bootstrap 4.Upgrade Ke Laravel 5.6
Untuk meng-upgrade pemasangan ke v5.6, ikuti petunjuk upgrade ini.Sumber: laravel-news
CODEPOLITAN
No comments:
Post a Comment