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 :)