Laravel спростив перевірку дозволів у маршрутах, додавши пряму підтримку enum до методу can(). Це нововведення усуває необхідність явно отримувати значення enum, що робить визначення маршрутів більш зрозумілими і виразними.
Ця функція особливо корисна при створенні адмін-панелей або багатокористувацьких додатків, де управління дозволами є важливим, і ви хочете використовувати можливості типобезпечності PHP.
Route::get('/admin', function () {
// ...
})->can(Permission::ACCESS_ADMIN);
Ось як реалізувати маршрути на основі ролей у адмін-панелі:
// app/Enums/AdminAccess.php
<?php
namespace App\Enums;
enum AdminAccess: string
{
case VIEW_REPORTS = 'view_reports';
case MANAGE_STAFF = 'manage_staff';
case EDIT_CONFIG = 'edit_config';
}
// web.php
Route::prefix('admin')->group(function () {
Route::get('/reports', ReportController::class)
->can(AdminAccess::VIEW_REPORTS);
Route::get('/staff', StaffController::class)
->can(AdminAccess::MANAGE_STAFF);
Route::post('/config', ConfigController::class)
->can(AdminAccess::EDIT_CONFIG);
});
Визначення маршрутів стали інтуїтивно зрозумілішими та легшими для супроводження:
// Попередній підхід
->can(AdminAccess::MANAGE_STAFF->value)
// Новий, чистіший підхід
->can(AdminAccess::MANAGE_STAFF)
Покращений метод can() робить маршрути на основі дозволів більш елегантними, зберігаючи переваги типізаційності PHP
Ви коли-небудь задумувалися, як полегшити свою роботу в Laravel? У нашій статті ми розглядаємо, як інтеграція Claude Code в PhpStorm може підвищити вашу продуктивність, спростивши процес написання коду та навчання нових розробників. Читайте далі, щоб дізнатися більше про переваги та функціональність цього потужного поєднання
Ви хочете навчитися, як інтегрувати Google OAuth у вашому проекті Laravel, використовуючи Socialite? Дізнайтеся, як налаштувати доступ до сервісів Google, таких як Календар, у нашій сьогоднішній статті
Модельний контекстний протокол (MCP) відкриває нові горизонти в інтеграції AI-додатків з PHP. Дізнайтеся, як легко створити сервер, що відповідає MCP, та які можливості відкриваються для вашого проєкту