Laravel 8 Release – 8 Sept 2020

Laravel 8 sekarang dirilis dan menyertakan banyak fitur baru termasuk Laravel Jetstream, direktori model, kelas pabrik model, squashing migrasi, peningkatan pembatasan kecepatan, pembantu pengujian waktu, komponen blade dinamis, dan banyak fitur lainnya.

Sebelum kami beralih ke fitur baru, kami ingin menunjukkan bahwa mulai versi 6, Laravel sekarang mengikuti semver dan akan merilis versi mayor baru setiap enam bulan. Anda dapat melihat bagaimana proses rilis bekerja di sini.

Laravel Jetstream

Laravel Jetstream menyempurnakan perancah Laravel UI yang ada, yang ditemukan di versi sebelumnya. Ini memberikan titik awal untuk proyek baru, termasuk login, pendaftaran, verifikasi email, otentikasi dua faktor, manajemen sesi, dukungan API melalui Laravel, dan manajemen tim.

Direktori Model

Kerangka aplikasi Laravel 8 menyertakan direktori app / Model. Semua perintah generator mengasumsikan model ada di app / Models; namun jika direktori ini tidak ada, framework akan menganggap aplikasi menyimpan model di dalam folder ‘app/’.

Model Factory Classes

Eloquent model factories sekarang berbasis kelas mulai di Laravel 8, dengan dukungan yang lebih baik untuk hubungan antar pabrik (yaitu, pengguna memiliki banyak pos). Saya pikir Anda akan setuju betapa hebatnya sintaks baru untuk menghasilkan catatan melalui pabrik model yang baru dan lebih baik:

use App\Models\User;

User::factory()->count(50)->create();

// using a model state "suspended" defined within the factory class
User::factory()->count(5)->suspended()->create();

Migrasi Squashing

Jika aplikasi Anda berisi banyak file migrasi, Anda sekarang dapat memadatkannya menjadi satu file SQL. File ini akan dijalankan pertama kali saat menjalankan migrasi, diikuti dengan file migrasi yang tersisa yang bukan bagian dari file skema yang terjepit. Menghancurkan migrasi yang ada dapat mengurangi penggelembungan file migrasi dan mungkin meningkatkan kinerja saat menjalankan pengujian.

Improved Rate Limiting

Laravel 8 menghadirkan peningkatan pada fungsionalitas pembatasan laju yang ada sambil mendukung kompatibilitas mundur dengan middleware throttle yang ada dan menawarkan fleksibilitas yang jauh lebih besar. Laravel 8 memiliki konsep Rate Limiters yang dapat Anda tentukan melalui facade:

use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Support\Facades\RateLimiter;

RateLimiter::for('global', function (Request $request) {
    return Limit::perMinute(1000);
});


Seperti yang Anda lihat, metode for () mengambil contoh permintaan HTTP, memberi Anda kendali penuh atas permintaan pembatasan secara dinamis.

Pembantu Pengujian Waktu
Pengguna Laravel telah menikmati kendali penuh atas modifikasi waktu melalui pustaka Carbon PHP yang sangat baik. Laravel 8 membawa ini satu langkah lebih jauh dengan menyediakan pembantu pengujian yang nyaman untuk memanipulasi waktu dalam pengujian:

// Travel into the future...
$this->travel(5)->milliseconds();
$this->travel(5)->seconds();
$this->travel(5)->minutes();
$this->travel(5)->hours();
$this->travel(5)->days();
$this->travel(5)->weeks();
$this->travel(5)->years();

// Travel into the past...
$this->travel(-5)->hours();

// Travel to an exact time...
$this->travelTo(now()->subHours(6));

// Return back to the present time...
$this->travelBack();


Saat menggunakan metode ini, waktu akan disetel ulang di antara setiap pengujian.

Komponen Blade Dinamis

Terkadang Anda perlu merender komponen blade secara dinamis pada waktu proses. Laravel 8 menyediakan untuk merender komponen:

<x-dynamic-component :component="$componentName" class="mt-4" />

Cari tahu lebih lanjut tentang Laravel v8…
Ini hanyalah beberapa fitur baru di Laravel 8 dan untuk melihat daftar lengkapnya, lihat catatan rilis Laravel 8 serta panduan peningkatan. Selain itu, jangan lupa tentang Laravel Shift jika Anda menginginkan cara mudah untuk memperbarui.


Leave a Reply