Fitur What’s New dan peningkatan di Laravel 6

0
Dengan setiap versi baru, Laravel memiliki pembaruan besar yang sangat khas dengan kerangka kerja muda lainnya. Laravel 6 hadir dengan desain situs web yang segar bersama dengan peningkatan baru dengan koleksi malas, penambahan subquery yang fasih, dan banyak lagi.

3 September 2019 adalah tanggal rilis Laravel 6.

Saya akan membuat daftar beberapa fitur baru yang telah diperkenalkan dengan Laravel 6.

Lazy Collections

Lazy Collections adalah kelas yang menyediakan iterator untuk melakukan iterasi pada item array. Ini pada dasarnya dirancang untuk menjaga penggunaan memori tetap rendah oleh aplikasi.

Mari kita ambil contoh aplikasi di mana Anda harus bekerja dengan database besar dan Anda perlu mengambil ribuan / lakh catatan untuk alasan tertentu mungkin untuk file excel untuk menghasilkan laporan dan jika Anda menjalankan metode Laravel Eloquent all () maka kemungkinan besar itu akan membuang pengecualian memori karena mengambil semua catatan dan menyimpannya ke dalam memori.

Untuk mengatasi masalah ini, Laravel 6 menghadirkan metode kursor pembuat kueri solusi canggih yang mengembalikan instance LazyCollection.
$users = App\User::cursor();

foreach ($users as $user) {
   # code...
}

Anda juga dapat menggunakan lazy collection untuk memfilter data dari kelas collection:

$users = App\User::cursor()->filter(function ($user) {
    return $user->id > 100;
});

foreach ($users as $user) {
    # code...
}

Fungsi callback filter akan dijalankan hanya jika kita mengulang setiap pengguna.

String & Array Helpers Package

Sebelumnya Anda telah memiliki akses metode pembantu string dan array dalam aplikasi Laravel secara default tetapi dengan Laravel 6, Semua pembantu str_ dan array_ telah dipindahkan ke paket Komposer laravel / helpers baru dan dihapus dari kerangka kerja.

Anda dapat menggunakan metode helper ini di Laravel 6 dengan menjalankan perintah komposer berikut:
composer require laravel/helpers

Jika Anda tidak menginstal paket untuk helper maka Anda akan mendapatkan jenis kesalahan berikut:

Call to undefined function str_ or Call to undefined function array_

Eliminated Carbon 1.x version and added Carbon 2.0

Carbon 1.x telah dihapus dari Laravel 6 dan sekarang Carbon 2 secara resmi didukung oleh Laravel. Laravel 6 tidak memberikan dukungan apa pun untuk pelepasan Karbon 1.x..

The BelongsTo::update Method

Ini adalah salah satu fitur baru di Laravel 6, Ini memberi Anda perlindungan tugas massal pada metode pembaruan milik.

Jika Anda ingin memperbarui model yang dilampirkan melalui hubungan BelongsTo dan Anda mendapatkan perlindungan dan peristiwa pembaruan tugas massal, Anda harus memanggil metode pembaruan dengan cara berikut:
/* Without mass assignment protection */

$article->user()->update(['foo' => 'bar']);

   

/* With mass assignment protection */

$article->user->update(['foo' => 'bar']);

Eloquent Subquery Enhancements

Laravel menambahkan dukungan untuk subkueri ke metode kueri select dan addSelect.

Mari kita ambil contoh tabel pengguna dan tabel pos. Pengguna akan berisi banyak posting dan saya harus memilih semua pengguna dan posting terbaru mereka menggunakan satu kueri yang fasih:
return User::addSelect(['last_post' => Post::select('title')
    ->whereColumn('user_id', 'users.id')
    ->orderBy('created_at', 'desc')
    ->limit(1)
])->get();
Ini benar-benar fitur luar biasa yang akan banyak membantu Anda saat Anda perlu menulis subquery.

Anda juga bisa melakukan pekerjaan yang sama dengan pembuat kueri:
return User::addSelect(['last_post' => function ($query) {
    $query->select('title')
        ->from('posts')
        ->whereColumn('user_id', 'users.id')
        ->orderBy('created_at', 'desc')
        ->limit(1);
}])->get();

Declaration Of Primary Key Type

Mempertimbangkan pengoptimalan kinerja, kunci jenis integer adalah solusi terbaik untuk kunci utama. Laravel 6 memiliki update untuk menyetel kunci utama pada model Anda jadi jika Anda menggunakan string sebagai kunci utama model, Anda dapat mendeklarasikannya menggunakan properti $keyType pada model Anda.
/**
 * The "type" of the primary key ID.
 *
 * @var string
 */
protected $keyType = 'string';

Anda juga dapat melakukan lebih banyak peningkatan dari sini: Laravel 6.0 Upgrade

LEAVE A REPLY

Please enter your comment!
Please enter your name here