Tim pengembang inti Laravel baru saja merilis versi 9.15 yang tentunya membawa sejumlah perubahan termasuk penambahan dan perubahan.
Fitur-fitur baru di Laravel 9.15
Berikut ini fitur-fitur baru yang dihadirkan oleh komunitas Laravel beserta pengembang inti Laravel.
Fungsi untuk Mengecek Direktori Apakah Kosong atau Berisi
@DarkGhostHunter menambahkan dua method untuk mengecek apakah direktori kosong atau memiliki isi:
use Illuminate\Support\Facades\File;
if (File::isDirectoryEmpty('john/photos')) {
return 'You do not have any photos';
}
if (File::isDirectoryNotEmpty('john/videos', true)) {
return 'You may have one or more videos, even hidden ones.';
}
Menampilkan Jumlah Rute pada Perintah route:list
Ash Allen menambahkan hal visual yang menampilkan jumlah rute baik di awal ataupun diakhir output CLI route:list.
Penamaan Slot dengan kebab-case
Waghabond menambahkan fitur untuk penamaan Slot dengan format kebab-case, seperti contoh berikut:
<!-- /resources/views/components/my-layout.blade.php -->
<html lang="en">
<body>
{{ $mySlot }}
</body>
</html>
<!-- /resources/views/components/child.blade.php -->
<x-my-layout>
{{-- kebab-case slot name --}}
<x-slot:my-slot>
<div>My super cool content</div>
</x-slot:my-slot>
</x-my-layout>
Method isJson() untuk String
Daniel Eckermann berkontribusi dengan menambahkan method isJson() yang memungkinkan kita untuk mengecek apakah string bersifat valid dalam format JSON.
Str::isJson($data);
//=> boolean
Str::of($data)->isJson()
//=> boolean
str($data)->isJson();
//=> boolean
Hanya Menampilkan Rute oleh Vendor pada route:list
Ash Allen menambahkan sebuah opsi --only-vendor pada perintah route:list. Saat opsi ini digunakan maka route:list hanya menampilkan rute-rute yang berdasarkan dari vendor saja.
Opsi ini sangat bermanfaat untuk mengecek rute-rute apa saja yang dibawa oleh package-package yang kita install ke aplikasi Laravel kita.
Method "throw unless" untuk HTTP Client
Mahmoud Mohamed Ramadan menambahkan method throwUnless() pada Laravel HTTP client. Method ini akan melempar eksepsi jika ada error dan ketika kondisi yang terjadi bersifat false.
$response = Http::post(/* ... */);
$response->throwUnless($condition);
Catatan Perilisan
Kita juga dapat melihat berbagai fitur baru dan pembaruan dibandingkan 9.14 dan 9.15 pada Github.
Tambahan
- Added --only-vendor option to route:list command (#42549)
- Added Illuminate/Http/Client/PendingRequest::throwUnless() (#42556)
- Added Illuminate/Support/Str::isJson() (#42545)
- Added Illuminate/Filesystem/Filesystem::isEmptyDirectory() (#42559)
- Added Add counts to route:list command (#42551)
- Support kebab case for slot name shortcut (#42574)
Diurungkan
Perbaikan
- Fix getting '0' from route parameter in Authorize middleware (#42582)
Perubahan
- Retain the original attribute value during validation of an array key with a dot for correct failure message (#42395)
- Allow bootable test traits to teardown (#42521)
- Pass thrown exception to $sleepMilliseconds closure in retry helper (#42532)
- Make HasTimestamps::updateTimestamps chainable (#42533)
- Remove meaningless parameter in Illuminate/View/Concerns/ManagesEvents (#42546)
- Map integer parameter to parameter name when resolving binding field (#42571)
- Conditionable should return HigherOrderWhenProxy only when the args number is exactly 1 (#42555)