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',
},
},
});
Kemudian, ketika kita ingin menggunakan sudah bisa dengan cara:
import Profile from '@image/profile.png'
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}"));
}
}
Kemudian, untuk menggunakannya bisa mudah dengan memanggil Vite::localeAsset seperti berikut:
<img src="{{ Vite::image('profile.png') }}" alt="..." />
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'
Model getAppends() method
Arturo Rodríguez telah berkontribusi menambahkan metode untuk mendapatkan accessors mana yang telah ditambahkan pada model yang sedang digunakan.
$model->getAppends();
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) => /* ... */
);
}
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()])
);
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.
Artikel yang Terkait
- Belajar Cache Flexible di Laravel
Irsyad A. Panjaitan
- Membuat Fitur Multi Bahasa di Laravel Inertia React
Irsyad A. Panjaitan
- Laravel Script: composer run dev
Irsyad A. Panjaitan
- Apa yang Baru di Inertia.js 2.0
Irsyad A. Panjaitan
- Membuat Custom Rule Validator untuk Nomor Telepon Indonesia dengan Laravel
Abd. Asis
- Like System dengan Laravel Polymorphic
Irsyad A. Panjaitan
- Laravel Dengan Multi Koneksi Database: Panduan Langkah demi Langkah
Abd. Asis