Rumah > pembangunan bahagian belakang > tutorial php > Laravel A Leap Forward dalam Pengujian, ID Model dan Keizinan

Laravel A Leap Forward dalam Pengujian, ID Model dan Keizinan

Linda Hamilton
Lepaskan: 2025-01-14 07:44:43
asal
610 orang telah melayarinya

Laravel  A Leap Forward in Testing, Model IDs, and Authorization

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Pemudahan ini meningkatkan keselamatan jenis dan kebolehbacaan dalam kod kebenaran.

Peningkatan Ketara Lain

Versi 11.30 juga termasuk:

  • Kefungsian Blade::directive dikembangkan dengan parameter $bind.
  • Menyelesaikan trans_choice() isu dengan penggantian terjemahan yang mengandungi pemisah |.
  • Pengoptimuman prestasi menggunakan exists() dan bukannya count() dalam senario tertentu.
  • Menambah sokongan untuk pengendali Postgres tersuai.
  • Memperkenalkan dimensi pilihan untuk jenis lajur vektor.
  • Pemesejan ralat dipertingkatkan untuk PostTooLargeException.
  • Memperbaiki pelanggaran kekangan integriti berkaitan 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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan