Dapatkan diskon up to 40% untuk pembelian di bulan Ramadhan.

Laravel v9.18.0 Telah Rilis

Dalam artikel ini kita akan membahas apa-apa saja yang terbaru dalam rilis kali ini. Oia, semua perbaruan ini dikontribusi oleh tim inti dari laravel yaitu Tim MacDonald.

2 min read

Published on 24 Jun, 2022 (updated: 20 Oct, 2022)

Written by Irsyad A. Panjaitan

Fill in LaravelReleasedLaravel

ArticlesLaravel v9.18.0 Telah Rilis

Dalam artikel ini kita akan membahas apa-apa saja yang terbaru dalam rilis kali ini. Oia, semua perbaruan ini dikontribusi oleh tim inti dari laravel yaitu Tim MacDonald.


Monitoring Query

Dengan adanya metode baru ini, kita bisa dapat dimudahkan melakukan sesuatu jika query yang kita load telah melebihi waktu yang kita tentukan. Jadi Anda bisa langsung memasukkan fungsi itu didalam file app/Providers/AppServiceProvider.php seperti berikut:

namespace App\Providers; use Illuminate\Database\Connection; use Illuminate\Support\Facades\DB; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { ... public function boot() { DB::whenQueryingForLongerThan(500, function (Connection $connection) { // Beritahu developer tentang hal ini }); } }
phpCopy

Nested Eager Loading

Dulunya, sebelum adanya fitur ini, kita akan mengulang-ulang dari satu relasi ke tabel relasi lain.

Bayangkan, disini kita akan menampilkan tabel documents yang isinya pasti ada authornya, tetapi author itu juga punya dua relasi ke tabel lain yang mesti kita tampilkan juga.

Maka sebelumnya kita akan menggunakan seperti ini:

Document::query() ->with(['user.articles', 'user.address']) ->get();
phpCopy

Nah, dengan adanya fitur ini, kita bisa nest dia dengan cara:

Document::query() ->with([ 'user' => ['articles', 'address']]) ->get();
phpCopy

Menggunakan Rule Objects

Dalam fitur ini, kita jauh lebih mudah untuk mendefinisikan custom validasi. Nantinya, setelah kita generasi file nya dari command line, maka dia akan otomatis membuat file tersebut didalam folder app/Rules:

php artisan make:rule Lowercase --invokable
bashCopy

Setelah itu, maka Anda akan melihat file tersebut hanya dengan satu metode saja yaitu __invoke seperti:

<?php namespace App\Rules; use Illuminate\Contracts\Validation\InvokableRule; class Lowercase implements InvokableRule { /** * Run the validation rule. * * @param string $attribute * @param mixed $value * @param \Closure(string): \Illuminate\Translation\PotentiallyTranslatedString $fail * @return void */ public function __invoke($attribute, $value, $fail) { if (strtolower($value) !== $value) { $fail('The :attribute must be lowercase.'); } } }
phpCopy

Semoga informasi terbaru ini berguna ya teman-teman.

Irsyad A. Panjaitan

Let's start living like no one can help us in any event, so that when we are helped in certain times, it becomes a plus in itself.
0

Share on