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.

    Irsyad A. Panjaitan

    2 min read·24 Jun 2022

    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.


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

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

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

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

    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
    

    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.');
            }
        }
    }
    

    Semoga informasi terbaru ini berguna ya teman-teman.

    Karteil
    Destinasi Utama Belajar Online dengan Format Tulisan yang Elegan
    Kunjungi Sekarang

    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.

    Follow me on
    Support me
    SaweriaGithub

    Newsletter

    Bergabunglah dengan 23.000+ lainnya dan jangan pernah ketinggalan screencast, tips, tutorial, dan lainnya.