Minggu, 23 Mei 2021

Apa Saja Fitur Baru Di Laravel 8

Tags

fitur baru laravel 8


Laravel adalah kerangka kerja PHP paling populer, dengan lebih dari 1,2 juta situs web dibangun di atasnya. Sejak dirilis pada Juni 2011, Laravel telah menarik perhatian banyak pengembang web sebagai kerangka kerja PHP yang paling banyak digunakan.

Laravel menawarkan lingkungan pengembangan yang cepat, keamanan, dan panduan pengembang yang baik. Dibuat dan dikelola oleh penciptanya Taylor Otwell, Laravel terus melakukan perbaikan pada perangkat lunaknya mengikuti skema pembuatan versi semantik dan saat ini pada versi 8.x.

Baca juga: Bagaimana Cara Belajar Laravel Agar Lebih Efektif?

Berikut adalah delapan fitur baru yang harus diperhatikan di Laravel 8.

1. Laravel Jetstream
Ini adalah fitur aplikasi scaffolding baru di Laravel. Muncul dengan fitur seperti session tracking, login, registration, email verification, two-factor authentication and optional team management.

Jetstream menawarkan dua pilihan scaffolding: Livewire dan Inersia.

Livewire adalah pustaka responsif dan dinamis yang menawarkan kemampuan untuk menghindari penggunaan kerangka JavaScript seperti Vue.js. Menggunakan bahasa template Blade secara default. Livewire juga menawarkan fleksibilitas untuk memilih antara menggunakan Blade atau Vue.js.

Inersia menggunakan Vue.js sebagai bahasa templatnya, memberikan kekuatan penuh Vue.js tanpa perlu perutean sisi klien. Jika Vue adalah bahasa template yang dipilih, maka Inersia adalah pilihan yang baik.

2. Migration Squashing
Saat mengembangkan aplikasi, kebutuhan akan migrasi mungkin meningkat. Jika menggunakan MySQL atau PostreSQL maka sekarang developer dapat melakukan “squash” atau menyatukan file-file migration tersebut menjadi hanya sebuah file SQL.

Laravel akan membuat file skema ketika perintah schema:dump dijalankan. Ketika mencoba untuk memigrasi database, Laravel pertama-tama akan memigrasi file SQL yang terkait dengan skemanya. Setelah itu, jika ada migrasi yang bukan bagian dari skema, migrasi akan dijalankan.

3. Tailwind CSS
Laravel sekarang menggunakan framework Tailwind CSS sebagai paginator default. Tailwind adalah pustaka CSS yang mengutamakan utilitas yang menyediakan kelas CSS sekali pakai. Ini memberikan keuntungan karena memiliki informasi style di satu tempat daripada membuatnya tersebar. Anda dapat menerapkan kelas yang telah ditentukan langsung ke dokumen HTML.

Tailwind juga menawarkan kemampuan untuk membangun desain yang responsif, menawarkan sistem seluler yang mirip dengan Bootstrap. Tailwind juga dilengkapi dengan mode just-in time yang diaktifkan agar style dibuat sesuai permintaan daripada dirender semuanya pada waktu pemuatan awal. Ini membuatnya lebih cepat daripada menggunakan CSS biasa. Keuntungan lain yang ditawarkan adalah tidak perlu menyingkirkan style yang tidak digunakan sehingga memberi kemampuan untuk menggunakan kode di berbagai lingkungan.

Menarik juga untuk dicatat bahwa Laravel Jetstream dibuat menggunakan Tailwind.

Baca juga: Framework CSS Terbaik Untuk Front-End Developer

4. Job Batching
Anda dapat menggunakan fitur ini untuk menjalankan sekumpulan pekerjaan pada waktu tertentu dan melakukan tindakan tertentu saat eksekusinya selesai. Bus facade menyediakan metode batch yang memungkinkan untuk mengirimkan pekerjaan.

Anda dapat melakukan ini bersama-sama dengan callback penyelesaian lainnya seperti catch, then and finally untuk menambahkan fungsionalitas ke pekerjaan.

use App\Jobs\ProcessPodcast;
use App\Podcast;
use Illuminate\Bus\Batch;
use Illuminate\Support\Facades\Bus;
use Throwable;
$batch = Bus::batch([
    new ProcessPodcast(Podcast::find(1)),
    new ProcessPodcast(Podcast::find(2)),
    new ProcessPodcast(Podcast::find(3)),
    new ProcessPodcast(Podcast::find(4)),
    new ProcessPodcast(Podcast::find(5)),
])->then(function (Batch $batch) {
    // Semua tugas berhasil diselesaikan...
})->catch(function (Batch $batch, Throwable $e) {
    // Kegagalan tugas batch pertama terdeteksi...
})->finally(function (Batch $batch) {
    // Batch telah selesai dijalankan...
})->dispatch();
return $batch->id;

Untuk memulai, buat tabel migrasi yang akan berisi job metadata seperti completion rates. Gunakan perintah php artisan queue:batches-table untuk melakukan ini. Dan kemudian php artisan migrate untuk memigrasinya. Selanjutnya tentukan batchable job dan kemudian dispatch setelah siap.

5. Kelas Model Factory
Pertama, mari kita bahas model factory. Ini digunakan untuk seeding database dengan data pengujian. Data palsu ini penting untuk tujuan pengujian sebelum real data dimasukkan.

<?php

namespace DatabaseFactories;

use AppModelsUser;
use IlluminateDatabaseEloquentFactoriesFactory;
use IlluminateSupportStr;

class UserFactory extends Factory
{
    protected $model = User::class;

    public function definition()
    {
        return [
            'name' => $this->faker->name,
            'email' => $this->faker->unique()->safeEmail,
            'email_verified_at' => now(),
            'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
            'remember_token' => Str::random(10),
        ];
    }
}

Di Laravel 8, kelas Eloquent model sebelumnya telah sepenuhnya diganti dengan factory berbasis kelas. Sehingga, sekarang dapat mengelola status objek hanya dengan menggunakan metode. Metode ini biasanya memanggil metode state(), yang diberikan di kelas factory dasar Laravel. Metode state() mengambil sebagai argumen suatu fungsi yang akan mengambil array atribut yang ditetapkan ke factory.

<?php
use App\Models\User;

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

6. Peningkatan pada Maintenance Mode
Sebelumnya, Laravel menampilkan daftar alamat IP yang diizinkan yang dapat digunakan untuk mengakses aplikasi dalam mode pemeliharaan. Sekarang hal ini telah dihapus dan diganti dengan solusi yang lebih sederhana. Anda dapat menentukan token bypass menggunakan opsi rahasia.

$ php artisan down --secret="1630542a-246b-4b66-afa1-dd72a4c43515"

Saat dalam mode pemeliharaan, Anda dapat mengakses URL aplikasi dan Laravel akan secara otomatis meneruskan cookie bypass ke browser. Setelah cookie dikeluarkan, Anda akan mengakses aplikasi secara normal seperti tidak dalam mode pemeliharaan.

https://example.com/1630542a-246b-4b66-afa1-dd72a4c43515

Pengguna mungkin mengalami error jika menggunakan PHP artisan down selama deployment. Untuk menghindari ini, Laravel menawarkan opsi untuk membuat tampilan mode pemeliharaan yang akan ditampilkan setiap kali permintaan dibuat. Anda dapat melakukan pra-render template menggunakan opsi render pada perintah down.

7. Time Testing Helper
Laravel sekarang menyertakan kemampuan untuk memungkinkan untuk memanipulasi waktu saat ini. Opsi untuk memanfaatkan atribut waktu sebagai milidetik, jam, hari, dan seterusnya.

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();
}

Fungsi helper ini membuat pekerjaan menjadi rapi dan mudah diikuti dengan memberikan nama deskriptif pada metode.

8. Peningkatan pada Rate Limiting
Rate Limiting memungkinkan untuk mengelola jumlah lalu lintas yang diterima pada rute atau grup rute tertentu. Ini dapat dicapai dengan menggunakan middleware throttle. Middleware throttle menggunakan nama rate limiter yang ingin digunakan pada rute. Kode permintaan HTTP (429) dikembalikan jika permintaan masuk melebihi batas yang diberikan.

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

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

Di Laravel 8, rate limiter telah dibuat dengan lebih fleksibel namun tetap memiliki kompatibilitas ke belakang. Fungsi callback rate limiter memungkinkan untuk secara dinamis membuat batas rate yang sesuai yang ditetapkan pada pengguna terautentikasi atau permintaan masuk.

Bagi seorang web developer, menguasai Laravel adalah skill yang harus dimiliki karena open source, gratis untuk digunakan dan dengan komunitas lebih dari 40.000 pengguna.


EmoticonEmoticon