Laravel, rangka kerja aplikasi web PHP terkemuka, baru sahaja mengeluarkan versi 11.30, padat dengan ciri baharu yang menarik dan penambahbaikan yang meningkatkan produktiviti pembangun dan fleksibiliti kod. Mari terokai kemas kini utama.
Ujian Selaras dengan Pembantu Baharu: withDefer()
dan withoutDefer()
Laravel 11.30 memperkenalkan withDefer()
dan withoutDefer()
, ihsan Tim MacDonald. Ini tidak ternilai apabila menguji kod menggunakan panggilan tertunda, membolehkan anda melumpuhkan penangguhan secara terpilih untuk kawalan penegasan yang tepat.
Contoh ilustrasi menggunakan withoutDefer()
:
<code class="language-php">// This won't work correctly User::create(/* ... */); $this->assertAgainstSomeDeferredOutcome(); // This works as intended $this->withoutDefer(); User::create(/* ... */); $this->assertAgainstSomeDeferredOutcome();</code>
Kawalan yang dipertingkatkan ke atas operasi tertunda semasa ujian membawa kepada keputusan ujian yang lebih dipercayai dan tepat.
ID Rentetan Unik Tersuai dengan HasUniqueStringIds
Ciri
Sumbangan Luke Kuzmish, sifat HasUniqueStringIds
, memperkasakan pembangun untuk menggunakan ID rentetan unik tersuai sebagai kunci laluan tanpa mengubah suai resolveRouteBindingQuery()
. Ini mengembangkan ciri HasUuids
dan HasUlid
sedia ada, menawarkan fleksibiliti penjanaan ID yang lebih besar.
Melaksanakan ID rentetan unik tersuai:
<code class="language-php">trait HasTwrnsTrait { use HasUniqueStringIds; public function newUniqueId() { return (string) Twrn::new(); } protected function isValidKey($value): bool { return Twrn::isValid($value); } }</code>
Ciri ini membolehkan pengecam model yang sangat disesuaikan sambil menyepadukan dengan lancar dengan amalan Laravel standard.
Keizinan Dipertingkat dengan Sokongan Enum Langsung
Kemas kini Johan van Helden kepada sifat AuthorizesRequests
kini menerima secara langsung enum yang disandarkan, sejajar dengan rangkulan Laravel terhadap seluruh rangka kerja Enums baru-baru ini.
Menggunakan Enum dengan kaedah authorize()
:
<code class="language-php">enum DashboardPermission: string { case VIEW = 'dashboard.view'; } // Previously public function index(): Response { $this->authorize(DashboardPermission::VIEW->value); // ... } // Now public function index(): Response { $this->authorize(DashboardPermission::VIEW); // ... }</code>
Pemudahan ini meningkatkan keselamatan jenis dan kebolehbacaan dalam kod kebenaran.
Peningkatan Ketara Lain
Versi 11.30 juga termasuk:
Blade::directive
dikembangkan dengan parameter $bind
.trans_choice()
isu dengan penggantian terjemahan yang mengandungi pemisah |
.exists()
dan bukannya count()
dalam senario tertentu.PostTooLargeException
.failed_jobs_uuid_unique
.Laravel 11.30 menggariskan dedikasi rangka kerja untuk peningkatan berterusan dan pengalaman pembangun. Dengan ujian yang diperhalusi, ID model yang fleksibel dan kebenaran berasaskan Enum yang diperkemas, keluaran ini menyediakan pembangun alat baharu yang berkuasa untuk mencipta kod yang lebih bersih dan cekap. Laravel kekal sebagai pilihan utama untuk pembangun PHP membina aplikasi web yang mantap dan kaya dengan ciri.
Bersedia untuk memanfaatkan Laravel untuk memartabatkan perniagaan anda? Hubungi kami hari ini.
Atas ialah kandungan terperinci Laravel A Leap Forward dalam Pengujian, ID Model dan Keizinan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!