Rumah >pembangunan bahagian belakang >tutorial php >Mengoptimumkan Kebenaran Laluan dengan Sokongan Enum Laravel ' s

Mengoptimumkan Kebenaran Laluan dengan Sokongan Enum Laravel ' s

Johnathan Smith
Johnathan Smithasal
2025-03-06 00:39:09686semak imbas

Optimizing Route Permissions with Laravel's Enhanced Enum Support

Kebenaran penghalaan yang dioptimumkan Laravel: Sokongan penghitungan yang dipertingkatkan

Jika anda telah menggunakan kaedah Enums dan Laravel

, anda mungkin biasa dengan melampirkan Route::can() ke cek kebenaran. Laravel kini memudahkan proses ini dengan sokongan penghitungan terbina dalam untuk kebenaran penghalaan. Mari kita meneroka peningkatan ini yang menjadikan kod anda lebih ringkas dan elegan. ->value

Perbandingan sebelumnya dan belakang

Berikut adalah bagaimana tatabahasa berevolusi:

// 旧方法
Route::get('/posts', function () {...})->can(PostPermissions::CREATE_POST->value);
// 新方法
Route::get('/posts', function () {...})->can(PostPermissions::CREATE_POST);
tidak perlu lagi

-Ia itu mudah! ->value

Aplikasi praktikal

mari kita melaksanakannya dalam sistem pengurusan kandungan dengan pelbagai tahap kebenaran:

<?php namespace App\Enums;

use App\Enums\BackedEnum;

class ContentPermissions extends BackedEnum
{
    case VIEW_CONTENT = 'view_content';
    case PUBLISH_POST = 'publish_post';
    case MODERATE_COMMENTS = 'moderate_comments';
}

Route::prefix('content')->group(function () {
    Route::get('/dashboard', [ContentController::class, 'index'])
        ->can(ContentPermissions::VIEW_CONTENT);

    Route::post('/posts', [PostController::class, 'store'])
        ->can(ContentPermissions::PUBLISH_POST);

    Route::put('/comments/{comment}', [CommentController::class, 'update'])
        ->can(ContentPermissions::MODERATE_COMMENTS);
});
Dalam contoh ini, kita:

    Tentukan keizinan kami menggunakan penghitungan yang menyokong nilai
  • Kumpulan laluan yang berkaitan di bawah awalan awam
  • Gunakan periksa kebenaran secara langsung menggunakan situasi penghitungan
Pendekatan ini meningkatkan kebolehbacaan kod dan menyimpan jenis-selamat dengan penghitungan nilai-nilai yang disokong PHP. Hasilnya adalah definisi penghalaan yang lebih mudah dikekalkan dan dinyatakan yang lebih baik mewakili struktur kebenaran permohonan.

Atas ialah kandungan terperinci Mengoptimumkan Kebenaran Laluan dengan Sokongan Enum Laravel ' s. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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