Tim Laravel telah merilis versi 11.27, membawa sejumlah peningkatan dan fitur baru yang menarik untuk pengembang. Rilisan ini mencakup peningkatan performa pada Schema::hasTable(), metode Str::doesntContain() yang baru, penambahan dukungan ekstensi ke Str::inlineMarkdown(), dan banyak lagi.
Ubah Mata Uang Default Secara Global dalam Number Helper
Ryan Holton telah berkontribusi dengan menambahkan pengaturan mata uang default yang dapat dikonfigurasi untuk Number helper. USD masih menjadi mata uang default, tetapi Anda sekarang dapat menentukan mata uang default yang berbeda tanpa menggunakan argumen ‘in’ untuk mengganti:
use Illuminate\Support\Number;
// Setel mata uang default
Number::useCurrency('EUR');
$currency = Number::currency(1000);
// €1,000.00
$currency = Number::currency(1000, in: 'USD');
// $1,000.00
// Beberapa kode yang menggunakan USD dan kembali ke EUR setelahnya
Number::withCurrency('USD', function () {
//
});
Metode String doesntContain()
Ryan Holton juga telah berkontribusi dengan menambahkan metode doesntContain() ke helper Str. Metode ini merupakan kebalikan dari metode contains():
use Illuminate\Support\Str;
$str = 'My favorite food is Pizza';
Str::doesntContain($str, 'Steak'); // true
Str::doesntContain($str, 'Pizza'); // false
Str::doesntContain($str, ['Steak', 'Spaghetti']); // true
Str::doesntContain($str, ["Steak", "Spaghetti", "Pizza"]); // false
Jual Aplikasi CRM Berbasis Laravel
Hanya 310Rb
Meningkatkan Performa Schema::hasTable()
Hafez Divandari telah berkontribusi dengan memperbarui performa metode Schema::hasTable(). Metode ini sebelumnya menggunakan metode Schema::getTable() secara internal, yang terkadang mengakibatkan kueri yang mahal. Pembaruan ini meningkatkan performa Schema::hasTable() dengan menggunakan kueri yang lebih ringan.
Menambahkan Dukungan Ekstensi ke Str::inlineMarkdown()
Ryan Chandler telah menambahkan dukungan ekstensi ke metode Str::inlineMarkdown() dan str()->inlineMarkdown(), sejalan dengan pembaruan di Laravel 11.14 yang menambahkan dukungan ekstensi ke metode markdown().
Metode HTTP Kernel untuk Menambahkan Middleware Relatif terhadap Middleware Lainnya
Ollie Read telah berkontribusi dengan pembaruan pada HTTP Kernel yang memungkinkan penyisipan programatik middleware dalam kaitannya dengan middleware yang ada dalam stack prioritas. Lebih tepatnya, pembaruan ini memperkenalkan dua metode publik baru:
- addToMiddlewarePriorityAfter(): menyisipkan middleware setelah middleware yang ditentukan.
- addToMiddlewarePriorityBefore(): menyisipkan middleware sebelum middleware yang ditentukan.
Perubahan ini memudahkan pengembang paket untuk mengelola prioritas middleware tanpa memerlukan intervensi pengguna.
Berikut adalah dua contoh dari deskripsi pull request:
$kernel->addToMiddlewarePriorityAfter(
\Illuminate\Routing\Middleware\ValidateSignature::class,
[
\Illuminate\Cookie\Middleware\EncryptCookies::class,
\Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests::class,
],
);
$kernel->addToMiddlewarePriorityBefore(
\Illuminate\Routing\Middleware\ValidateSignature::class,
[
\Illuminate\Cookie\Middleware\EncryptCookies::class,
\Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests::class,
],
);
Catatan Rilis
Anda dapat melihat daftar lengkap fitur dan pembaruan baru di bawah ini dan perbedaan antara 11.26.0 dan 11.27.1 di GitHub. Catatan rilis berikut diambil langsung dari changelog:
v11.27.1
[11.x] Perbaiki overflow border pada pengalih tema saat di-hover oleh @mezotv di https://github.com/laravel/framework/pull/53064
[11.x] Optimalkan registri perintah oleh @erikgaal di https://github.com/laravel/framework/pull/52928
[11.x] Perbaiki laravel/framework#53071 oleh @it-can di https://github.com/laravel/framework/pull/53072
v11.27.0
[11.x] fitur: tipe sempit untuk throw_if dan throw_unless oleh @calebdw di https://github.com/laravel/framework/pull/53005
[11.x] Cegah pemanggilan tries() dua kali oleh @themsaid di https://github.com/laravel/framework/pull/53010
[11.x] Perbaiki PHPDoc oleh @schulerj89 di https://github.com/laravel/framework/pull/53009
[11.x] Manfaatkan Illuminate\Support\php_binary() oleh @crynobone di https://github.com/laravel/framework/pull/53008
[11.x] Setel array generik HasAttributes@casts() oleh @cosmastech di https://github.com/laravel/framework/pull/53024
[11.x] Tingkatkan performa Schema::hasTable() oleh @hafezdivandari di https://github.com/laravel/framework/pull/53006
[11.x] Selalu wariskan atribut induk oleh @royduin di https://github.com/laravel/framework/pull/53011
[11.x] fitur: perkenalkan opsi untuk mengubah mata uang default Number oleh @sts-ryan-holton di https://github.com/laravel/framework/pull/53022
[11.x] fitur: tambahkan metode Str::doesntContain() dan uji pendukung oleh @sts-ryan-holton di https://github.com/laravel/framework/pull/53035
[11.x] Str: Tambahkan dukungan ekstensi untuk Str::inlineMarkdown() oleh @ryangjchandler di https://github.com/laravel/framework/pull/53033
Perbaiki: Perbaiki typehint pada metode pengambilan repositori oleh @liamduckett di https://github.com/laravel/framework/pull/53025
[11.x] Uji untuk melupakan kunci yang tidak fleksibel untuk driver file oleh @timacdonald di https://github.com/laravel/framework/pull/53018
Tambahkan metadata ke data tampilan mailable oleh @TobMoeller di https://github.com/laravel/framework/pull/53042
[11.x] Perbaikan PHPDoc oleh @schulerj89 di https://github.com/laravel/framework/pull/53054
[11.x] Perbaikan Uji oleh @toarupg0318 di https://github.com/laravel/framework/pull/53057
[11.x] Perbaikan PHPDoc oleh @seriquynh di https://github.com/laravel/framework/pull/53053
Tambahkan Penanganan Pengecualian untuk Metode jsonOptions() oleh @shamimulalam di https://github.com/laravel/framework/pull/53056
[11.x] Memperbaiki make:model untuk Permintaan Formulir oleh @joshmanders di https://github.com/laravel/framework/pull/53052
[11.x] Memperbaiki validasi menggunakan shouldConvertToBoolean ketika parameter menggunakan notasi titik oleh @bytestream di https://github.com/laravel/framework/pull/53048
[11.x] Tambahkan metode ke HTTP kernel untuk menambahkan middleware relatif terhadap middleware lainnya oleh @ollieread di https://github.com/laravel/framework/pull/52897
[11.x] Tambahkan flag –json ke perintah queue:work untuk pencatatan terstruktur oleh @josecl di https://github.com/laravel/framework/pull/52887
[11.x] Tingkatkan performa blok_for antrean Redis ketika pekerja memiliki beberapa antrean untuk dilayani oleh @michael-scinocca di https://github.com/laravel/framework/pull/52826
Dengan penambahan fitur dan peningkatan performa ini, Laravel 11.27 siap untuk membantu Anda membangun aplikasi web yang lebih kuat dan efisien.