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

Apa yang Baru di Laravel 9.31.0

Pada pembaruan kali ini, banyak sekali kontribusi dari Tim MacDonald. Yang mana semua itu juga yang kita harapkan bersama. Dalam artikel ini, saya akan memberi tahu apa-apa saja yang terbaru dalam versi 9.31 ini.

2 min read

Published on 28 Sep, 2022 (updated: 02 Oct, 2022)

Written by Irsyad A. Panjaitan

Fill in LaravelReleased

ArticlesApa yang Baru di Laravel 9.31.0

Pada pembaruan kali ini, banyak sekali kontribusi dari Tim MacDonald. Yang mana semua itu juga yang kita harapkan bersama. Dalam artikel ini, saya akan memberi tahu apa-apa saja yang terbaru dalam versi 9.31 ini.

Vite class Macroable

Pada tanggal 18 lalu, Tim MacDonald telah membuat pull request ke laravel framework untuk menambahkan yang namanya Vite class Macroable. Guna dari PR ini adalah agar kita dapat dengan mudah membuat alias pada konfigurasi javascript kita.

Mari kita perhatikan contoh berikut ini. Pada vite.config.js nya kita bisa alias kan image sebagai contoh case ini.

import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; export default defineConfig({ plugins: [ laravel(/* ... */), ], resolve: { alias: { 'image': '/resources/images', 'page': '/resources/js/Pages', }, }, });
jsCopy

Kemudian, ketika kita ingin menggunakan sudah bisa dengan cara:

import Profile from '@image/profile.png'
jsCopy

Anda sudah mengetahuinya dengan javascript, sekarang kita akan bahas pada laravel nya. Pada AppServiceProvider kita bisa letak itu pada metode boot seperti berikut ini.

use Illuminate\Support\Vite; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot(): void { Vite::macro('image', fn ($asset) => $this->asset("resources/images/{$asset}")); } }
phpCopy

Kemudian, untuk menggunakannya bisa mudah dengan memanggil Vite::localeAsset seperti berikut:

<img src="{{ Vite::image('profile.png') }}" alt="..." />
phpCopy

Str wrap static method

Steve Bauman menambahkan metode untuk wrap seperti:

Str::wrap('-bar-', 'foo', 'baz'); // 'foo-bar-baz' str('-bar-')->wrap('foo', 'baz'); // 'foo-bar-baz'
phpCopy

Model getAppends() method

Arturo Rodríguez telah berkontribusi menambahkan metode untuk mendapatkan accessors mana yang telah ditambahkan pada model yang sedang digunakan.

$model->getAppends();
phpCopy

Request lifecycle duration handler

Tim MacDonald telah berkontribusi menambahkan fungsi whenRequestLifecycleIsLongerThan yang ketika request lebih lama dari batas waktu yang ditentukan.

use Carbon\CarbonInterval as Interval; use Illuminate\Contracts\Http\Kernel; public function boot() { if ($this->app->runningInConsole()) { return; } $kernel = $this->app[Kernel::class]; $kernel->whenRequestLifecycleIsLongerThan( Interval::seconds(1), fn ($startedAt, $request, $response) => /* ... */ ); }
phpCopy

Model "without timestamps" feature

Masih dengan Tim, dia menambahkan static method yaitu withoutTimestamps() yang berguna untuk memperbarui data tanpa memperbarui update_at nya. Biasanya yang kita lakukan adalah menggunakan $this->timestamps = false. Namum, sekarang bisa dengan menggunakan fungsi yang baru saja di tambahkannya.

$user = User::latest()->first(); User::withoutTimestamps( fn () => $user->update(['reserved_at' => now()]) );
phpCopy

Dengan begitu, maka updated_at tidak akan berubah sama sekali. Itu saja dul untuk artikel ini, semoga bermanfaat ya. Saya Irsyad, see you next time.

Berikut ini adalah artikel yang bersangkutan mengenai update Laravel.

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