laravel optimierte Routing -Berechtigungen: Verbesserte Aufzählungsunterstützung
Wenn Sie Enums und Laravel Route::can()
Methode verwendet haben, sind Sie möglicherweise mit dem Anhängen von ->value
an Berechtigungsprüfungen vertraut. Laravel vereinfacht diesen Prozess nun mit integrierter Aufzählungsunterstützung für Routing-Berechtigungen. Lassen Sie uns diese Verbesserung untersuchen, die Ihren Code prägnanter und eleganter macht.
Vorheriger und hinterer Vergleich
Folgendes ist, wie sich die Grammatik entwickelt:
// 旧方法 Route::get('/posts', function () {...})->can(PostPermissions::CREATE_POST->value); // 新方法 Route::get('/posts', function () {...})->can(PostPermissions::CREATE_POST);
NICHT MEHR ZEIT ->value
- es ist so einfach!
Praktische Anwendung
implementieren wir dies in einem Content -Management -System mit verschiedenen Berechtigungsstufen:
<?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); });
In diesem Beispiel:
Dieser Ansatz verbessert die Lesbarkeit des Codes und hält Typen mit Aufzählungen von PHP-unterstützten Werten. Das Ergebnis ist eine leichter gewaltige und ausdrückliche Routing -Definition, die die Berechtigungsstruktur der Anwendung besser darstellt.
Das obige ist der detaillierte Inhalt vonOptimierung der Routenberechtigungen mit verstärktem Enum -Unterstützung von Laravel.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!