Maison >développement back-end >tutoriel php >Optimisation des autorisations d'itinéraire avec le support énuméré amélioré de Laravel

Optimisation des autorisations d'itinéraire avec le support énuméré amélioré de Laravel

Johnathan Smith
Johnathan Smithoriginal
2025-03-06 00:39:09683parcourir

Optimizing Route Permissions with Laravel's Enhanced Enum Support

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:

  • Définissez nos autorisations à l'aide d'énumérations qui prennent en charge les valeurs
  • Groupez les routes pertinentes sous un préfixe public
  • Utilisez la vérification de l'autorisation directement en utilisant la situation d'énumération

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn