Оптимізація дозволів маршрутів за допомогою розширеної підтримки Enum у Laravel

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 29 листопада, 2024
У статті ми дослідимо нові можливості підтримки enum у Laravel, які спростили перевірку прав доступу в методі Route::can. Дізнайтеся, як ця вдосконалена функціональність допоможе вам створювати чистіший і елегантніший код!

Якщо ви працюєте з enum і методом Route::can() у Laravel, напевно, ви знайомі з необхідністю додавати ->value під час перевірки прав. Тепер Laravel спростив цей процес завдяки вбудованій підтримці enum для маршрутів. Давайте розглянемо це вдосконалення, яке робить ваш код чистішим і елегантнішим.

# Порівняння до і після

Ось як змінився синтаксис:

// Старий підхід
Route::get('/posts', function () {...})->can(PostPermissions::CREATE_POST->value);
// Новий підхід
Route::get('/posts', function () {...})->can(PostPermissions::CREATE_POST);

Тепер без ->value — це просто!

# Реальне впровадження

Розгляньмо впровадження цього в системі управління контентом з різними рівнями доступу:

<?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);
});

У цьому прикладі ми:

Цей підхід підвищує читабельність коду та зберігає безпеку типів завдяки backed enum у PHP. Результат — більш прості та виразні визначення маршрутів, які краще відображають структуру прав доступу вашого додатку

Популярні

Logomark Logotype

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку

Logomark Logotype

Створення CLI-додатка за допомогою Laravel та Docker

Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!

Logomark Logotype

Laravel Boost — ваш стартовий набір для програмування з використанням штучного інтелекту

Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel