Laravel Optimized Routing Permissions: Amélioration du support d'énumération
Si vous avez utilisé des énumations et la méthode Route::can()
de Laravel, vous pouvez être familiarisé avec la connexion ->value
aux vérifications de l'autorisation. Laravel simplifie désormais ce processus avec un support d'énumération intégré pour les autorisations de routage. Explorons cette amélioration qui rend votre code plus concis et élégant.
Comparaison précédente et arrière
Ce qui suit est de savoir comment évolue la grammaire:
// 旧方法 Route::get('/posts', function () {...})->can(PostPermissions::CREATE_POST->value); // 新方法 Route::get('/posts', function () {...})->can(PostPermissions::CREATE_POST);
plus besoin ->value
- c'est aussi simple!
Application pratique
Implémentons cela dans un système de gestion de contenu avec différents niveaux d'autorisation:
<?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); });
Dans cet exemple, nous:
Cette approche améliore la lisibilité du code et maintient le type de type avec des énumérations des valeurs prises en charge PHP. Le résultat est une définition de routage plus facilement entretenue et exprimée qui représente mieux la structure d'autorisation de l'application.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!