Langsung ke konten utama

Fitur - Fitur Baru di Laravel 8

 

New landing page

Halaman yang ditampilkan saat kita membuka beranda pada penginstalan laravel 8 telah mengalami perubahan yang signifikan dan sekarang dibuat dengan TailwindCSS. Dan ada beberapa informasi tautan ke berbagai produk SaaS dari Laravel, situs komunitas. Bahkan ada juga tautan ke toko Laravel.

https://miro.medium.com/max/700/1*ie0w2azzbVVv-pbm69MA3g.png

Default app/models directory

Pada laravel 8, secara default lokasi model berada pada direktori app/models, pada versi sebelumnya laravel meletakkan model pada root direktori app. Menurut survei Taylor sendiri pendapat banyak dari 80% orang lebih suka meletakkan model pada direktori app/models.

Ketika kita sudah menggunakan laravel 8, maka ketika kita menjalankan php artisan make:model -, perintah ini tentu akan membuat model baru di dalam direktori app/models.

Controllers namespace prefix removed

Di versi Laravel sebelumnya, ada properti di RouteServiceProvider.php bernama $namespace yang digunakan untuk mengawali namespace controller secara otomatis (App\Http\Controllers). Properti ini telah dihapus di Laravel 8.

protected $namespace = 'App\Http\Controllers';

Route caching improvements

php artisan route:cache sangat bagus untuk kinerja dalam production. Namun, ada satu masalah di sini, ketika kita menjalankan perintah php artisan route:cache route yang memiliki closure akan menimbulkan masalah.

Tidak lagi di Laravel 8, sekarang route:cache sudah mendukung closure.

Blade component attributes improvements

Perbaikan ini terutama terkait dengan Nested components.

Misalnya kita memiliki component button:

<button {{ $attributes }}>
   {{ $slot }}
</button>

dan kita ingin extend pada component dangerbutton:

<x-button {{ $attributes->merge(['class' => 'bg-red']) }}>
   {{ $slot }}
</x-button>

di Laravel 7, component turunan tidak akan memiliki $attributes yang diturunkan. Sekarang di laravel 8 telah berubah, semua component turunan akan tersedia $attributes, sehingga lebih mudah untuk membangun komponen yang ingin kita extend.

Event Listening improvements

Pada laravel sebelumnya, jika kita ingin membuat event listen, kita akan melakukannya seperti ini:

Event::listen(OrderCreated::class, function(OrderCreated $event){
    info($event->whatever);
});

Di Laravel 8, kita bisa mendefinisikan seperti ini:

Event::listen(function(OrderCreated $event) { 
    // Do something
});

Queueable anonymous event listeners

Di Laravel 8, kita dapat mengirim job ke queue dari model event callback.

Misalnya:

class User extends Model {

    protected static function booting() 
    {
        static::created(queueable(function(User $user) {
           // Do something in the background
        }))
    }
    
}

Maintenance mode: secret access

Saat ini, jika kita menggunakan perintah artisan down/artisan up untuk mengalihkan aplikasi ke maintenance mode, tetapi kita ingin memberikan akses kepada beberapa orang developer lain, dll., satu-satunya cara untuk melakukannya adalah melalui pendaftaran IP Address. Ini tidak berfungsi dengan baik jika kita ingin memberikan akses ke banyak orang.

Sekarang di laravel 8 kita bisa menggunakan flag --secret saat mengalihkan aplikasi ke maintenance mode, seperti berikut:

php artisan down --secret=let-me-in

Nilai pada flag --secret let-me-in akan memberikan akses ke kita untuk melihat aplikasi dengan url seperti berikut https://www.demo.com/let-me-in

Maintenance mode: pre-rendered page

Di laravel 8 kita dapat menentukan view yang akan ditampilkan ketika menjalankan perintah php artisan down.

php artisan down --render="errors::back-soon"

Enhanced rate limiting

Di Laravel 8, Kita sekarang dapat menentukan beberapa rate limit melalui RateLimiter facade. Sebagai contoh:

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

Contoh diatas bisa kita gunakan dengan middleware throttle

Route::get('/login')->middleware(['throttle:authentication']);

Time Testing Helpers

Laravel 8 menyediakan helper untuk unit testinghelper ini berguna untuk memanipulasi waktu ketika manjalankan unit testing:

// 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 method ini, waktu akan selalu direset ketika menjalankan unit testing.

Laravel JetStream & Laravel Fortify

Sekarang saatnya untuk menyapa Laravel JetStream, sebuah package open source untuk Laravel 8.

Package ini mempunyai banyak fungsi sebagai berikut:

  • Authentication (login, dashboard, logout, password reset)
  • Two factor authentication (fitur ini menarik, seperti Google Authenticator)
  • Browser session management
  • API token management (Menggunakan Laravel Sanctum dan adanya hak akses)
  • Full "teams" functionality (user bisa membuat team, undang user ke team, dll)
  • User profile
  • Delete account functionality

Sebagai informasi, Laravel 8 akan dirilis pada 8 September 2020. Namun jika ingin segera mencobanya. Bisa ikuti step-step berikut ini.

  1. Update composer composer global update, jika perintah ini tidak berhasil. Jalankan perintah berikut ini:
composer global remove laravel/installer 
composer global require laravel/installer
  1. Jalankan perintah laravel new foo --jet --dev

Laravel JetStream

Ini hanyalah beberapa fitur baru di Laravel 8 dan untuk melihat daftar lengkapnya, catatan rilis Laravel 8 serta panduan untuk upgrade dari versi sebelumnya.

Sekian, Terima kasih.

source : santrikoding.com

Ref:

Komentar

Postingan populer dari blog ini

Model, View & Controller (MVC)

Model View Controller (MVC) Apa itu MVC?  MVC atau  Model View Controller  adalah sebuah pola desain arsitektur dalam sistem pengembangan website yang terdiri dari tiga bagian, yaitu:  Model,  bagian yang mengelola dan berhubungan langsung dengan database; View , bagian yang akan menyajikan tampilan informasi kepada pengguna; Controller , bagian yang menghubungkan model dan view dalam setiap proses request dari user.  Alur Kerja MVC Oke, setelah mempelajari apa itu MVC, sekarang saatnya memahami bagaimana alur kerja dari MVC. Mari lihat bagan berikut ini: Bagian  view  akan merequest informasi untuk bisa ditampilkan kepada pengguna. Request tersebut kemudian diambil oleh  controller  dan diserahkan bagian  model  untuk diproses;  Model akan mengolah dan mencari data informasi tersebut di dalam database; Model memberikan kembali pada controller untuk ditampilkan hasilnya di view;  Controller mengambil hasil olahan yang dilakukan di bagian model dan menatanya di  bagian view. Manfaat MVC

Tutorial Alter Table melalui migration

  Cara merubah nama tabel database dengan fitur migration di Laravel 5.4 Mungkin suatu saat saya ingin merubah nama tabel database yang sudah dibuat melalui fitur migration, sebenarnya bisa saja saya langsung rubah di MySQLnya langsung, tetapi hal itu tidak akan tercatat di log perubahan database yang dilakukan di fitur migrations.  Ini adalah list nama tabel pada database yang digunakan laravel sebelum diubah: Berikut langkah-langkahnya: Pertama saya lihat dulu hasil migrationnya yang pernah dilakukan dengan perintah: php artisan migrate:status maka hasilnya terlihat seperti berikut: disitu terlihat bahwa sudah dibuat tabel password, tabel user, tabel people. Sekarang saya ingin mengubah nama tabel people ke tabel user. Sebelumnya saya akan buat dulu file migration dengan perintah: php artisan make:migration change_people_to_orang_table dari hasilnya di gambar di bawah: terlihat bahwa tercbuat file 2017_03_07_043155_change_people_to_orang_table di dalam folder database/migrations/,

Menggunakan UUID di PHP

  Menggunakan UUID (Universally Unique Identifier) di PHP PHP ,  Tutorial  - 18 Jan 2017 UUID  ( Universally Unique Identifier ) ialah kumpulan 36 karakter (string) yang dibuat secara acak (random) dan unik dengan teknik khusus. UUID terdiri dari 32 karakter alphanumerik dan 4 karakter tanda hubung (strip). Dikarenakan karakter UUID yang unik, sangat kecil kemungkinan sebuah karakter UUID akan sama bahkan jika di-generate dalam tempo 1 detik sekalipun. UUID umumnya digunakan sebagai Primary Key. Mengapa Menggunakan UUID ? Timbul pertanyaan, mengapa seorang programmer harus menggunakan UUID ? Apa manfaat dengan menggunakan UUID ? Setidaknya ada beberapa alasan Anda untuk menggunakan UUID. #1 Mengamankan Data Anda Umumnya, programmer sering menggunakan  Auto-Increment Integer  sebagai  Primary Key  dalam tabel-tabel database-nya. Sehingga ketika data diakses akan menggunakan URL seperti berikut : http://aplikasiku.com/profile/99 http://aplikasiku.com/profile?id=99 Dengan URL seperti diat