Apa yang baru di Laravel 8

AlfaRiza
3 min readSep 11, 2020

--

Assalamualaikum wr.wb, halo semuanya, laravel sudah rilis di versi 8, buat yang baru belajar laravel, sabar yak hehe :)
Nah, sekarang apa yang baru di laravel 8 dibandingkan laravel 7, kita akan bahas di artikel ini

laravel 8

Laravel Jetsream

Pada laravel 8, laravel menggunakan jetstream untuk scaffoldingnya, tidak lagi bootstrap, vue/react, perubahan ini yang paling terasa karena di versi 8 ini terdapat beberapa tambahan fitur pada login register seperti login, registration, email verification, two-factor authentication, session management, API support via Laravel Sanctum, and optional team management.
Dimana kita dapat memcustmize fitur apa saja yang digunakan, oh iya jetsream dibuat menggunakan tailwind css dan juga memberikan pilihan untuk design nya, apakan menggunakan livewire atau inertia.

Laravel Installer
Untuk laravel 8 laravel installer sekarang menggunakan installer versi 4, jika sebelumnya di laravel 7 menggunakan installer versi 3,xx.
Jadi buat temen-temen bisa update installer nya ke versi 4, dengan perintah :

composer global update laravel/installer

Kemudian jika kalian sudah mengupdate installer laravel, baru kalian bisa membuat project baru dengan laravel 8, dengan perintah :

laravel new blog

Atau kalian bisa menggunakan composer untuk membuat projects baru dengan laravel 8(tanpa update installer laravel), dengan perintah :

composer create-project --prefer-dist laravel/laravel blog

Direktori Models

Pada laravel 8, terdapat perubahan pada direktori models, jika pada laravel 7, tidak terdapat folder khusus untuk model, yang artinya model di taruh pada luar folder, namun pada laravel 8, dibuat folder khusus untuk model, yang sebenarnya bukan perubahan yang baru sihh, karena versi laravel sebelumnya sudah pernah menggunakan folder model sendiri. Sehingga untuk penulisan penggunaan model, kita menggunakan

use App\Models\Nama_Model;

Model Factory Classes

Jika di versi sebelumnya kita memanggil factory dengan

factory(Model::class)->create();

Maka di laravel 8 kita menggunakan sintax

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

Tentu bukan perubahan besar namun, hal ini membuat lebih simple karena factory berupa class pada laravel 8.

Migration squashing

Pada laravel 8 terdapat perintah untuk menjalankan ratusan file migrasi yang membengkak dengan

php artisan schema:dump

Untuk menghapus semua migrasi yang ada kita dapat menjalankan perintah

php artisan schema:dump --prune

Job Batching

Pada laravel 8 fitur bus batching lebih mudah dengan perintah

Bus::batch()

Rate Limiting

Sebenarnya ini merupakan pengembangan dari versi sebelumnya, untuk membatasi request dengan perintah

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

Improvement Maintenance Mode

Ini merupakan salah satu perubahan favorit saya, jadi di laravel 8 ini ketika kita maintenance aplikasi, kita masih dapat mengakses dengan kode rahasia

php artisan down --secret="rahasia"

Sehingga kita dapat mengakses dengan url :

https://laravel8.com/rahasia

Kemudian kita dapat menampilkan view yang ingin kita tampilkan ketika aplikasi kita sedang maintenance

php artisan down --render="errors::maintenance"

Catch Method

Di laravel 8 kita dapat menggunakan method catch yang terbaru

use Throwable;

dispatch(function () use ($podcast) {
$podcast->publish();
})->catch(function (Throwable $e) {
// This job has failed...
});

Kompenen Blade Dinamis

pada laravel 8 kita dapat menggunakan component di blade, dengan begitu kita dapat menggunakan berkali kali. Contoh button

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

Sebenarnya untuk templating blade dapat kita bahas di lain kesempatan karena cukup banyak juga dan fokus kita kali ini adalah perubahan di laravel 8.

Update Event Listener

Kini penulisan syntax untuk menggunakan event listener lebih mudah

use App\Events\PodcastProcessed;
use Illuminate\Support\Facades\Event;

Event::listen(function (PodcastProcessed $event) {
//
});

Time Testing Helpers

Fitur ini terinspirasi dari Ruby on Rails, Untuk testing kita dapat memanipulasi waktu saat ini.

public function testTimeCanBeManipulated()
{
// 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 explicit time...
$this->travelTo(now()->subHours(6));

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

Improve artisan serve

Jika pada versi sebelumnya, ketika kita melakukan perubahan pada file .env, maka kita harus merefresh artisan serve, dengan cara mematikannya terlebih dahulu kemudian memanggil kembali artisan serve.

Namun pada laravel 8 ini, kita tidak perlu melakukan hal tersebut ketika kita melakukan perubahan pada file .env

Pagination view

Karena laravel 8 menggunakan scaffolding jetstream, maka dari itu default file bootstrap dihapus, namun kita masih dapat menggunakannya dengan cara pada file AppServiceProvider ditambahkan sytax berikut

public function boot()
{
Paginator::useBootstrap();
}

Routing Namespace

Pada laravel 8 terdapat perubahan syntax karena namespace untuk root menjadi null, sehingga penulisan route

use App\Http\Controllers\UserController;

Route::get('/users', [UserController::class, 'index']);

Mungkin itu saja yang dapat kita bahas, sebenarnya hal-hal yang saya bahas dapat kalian baca pada dokumentasi resmi laravel
Sekian Terimakasih :)

--

--

AlfaRiza
AlfaRiza

No responses yet