Maison > développement back-end > tutoriel php > Améliorations de la définition de l'itinéraire dans Laravel avec intégration ENUM

Améliorations de la définition de l'itinéraire dans Laravel avec intégration ENUM

Karen Carpenter
Libérer: 2025-03-06 02:27:09
original
824 Les gens l'ont consulté

Route Definition Enhancements in Laravel with Enum Integration

La dernière mise à jour de Laravel améliore les définitions d'itinéraire en intégrant directement avec la fonctionnalité ENUM de PHP. Cela simplifie la configuration de l'itinéraire, éliminant le besoin de récupération de valeur manuelle lors de l'utilisation des énumérations, conduisant à un code plus propre et plus maintenable tout en conservant la sécurité de type.

Maintenant, vous pouvez utiliser de manière transparente les cas d'énumération dans les méthodes de routage de Laravel pour les noms de route et les domaines. Cette approche rationalisée maintient les avantages de la vérification du type d'énumération.

Voici un exemple démontrant l'utilisation des énumérations dans les préfixes de route:

enum RouteSection: string
{
    case Admin = 'admin';
    case Client = 'client';
    case Public = 'public';
}

Route::prefix(RouteSection::Admin)
    ->group(function () {
        // Admin routes
    });
Copier après la connexion

Considérons un scénario d'application multi-portal:

<?php namespace App\Routing;

use App\Http\Controllers\Portal;

enum PortalType: string
{
    case Student = 'student.university.edu';
    case Faculty = 'faculty.university.edu';
    case Admin = 'admin.university.edu';
}

enum PortalSection: string
{
    case Dashboard = 'dashboard';
    case Resources = 'resources';
    case Profile = 'profile';
}

// Route configuration
Route::domain(PortalType::Student)
    ->middleware(['auth', 'student'])
    ->group(function () {
        Route::get('/', [Portal\StudentController::class, 'index'])
            ->name(PortalSection::Dashboard);

        Route::get('/materials', [Portal\ResourceController::class, 'index'])
            ->name(PortalSection::Resources);

        Route::get('/profile', [Portal\ProfileController::class, 'show'])
            ->name(PortalSection::Profile);
});

Route::domain(PortalType::Faculty)
    ->middleware(['auth', 'faculty'])
    ->group(function () {
        // Faculty portal routes using the same enums
        Route::get('/', [Portal\FacultyController::class, 'index'])
            ->name(PortalSection::Dashboard);
    });
Copier après la connexion

Cette prise en charge directe de l'énumération améliore considérablement la lisibilité au code et la maintenabilité, tout en préservant les avantages des énumérations PHP, telles que la sécurité de type et l'amélioration automatique.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal