Редагуйте дані моделей за допомогою пакету Redactable Models для Laravel

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 13 вересня, 2025
Ви коли-небудь думали про те, як захистити чутливі дані у вашому веб-додатку? У нашій статті розглядається пакет Redactable Models для Laravel, який дозволяє просто та ефективно редагувати, маскувати або приховувати інформацію в моделях, гарантуючи безпеку та конфіденційність ваших даних. Читайте далі, щоб дізнатися більше про його основні можливості

Redactable Models для Laravel — це пакет від Ешлі Аллен, який дозволяє редагувати, запобігати розголошенню або маскувати дані у ваших моделях Laravel:

При створенні веб-додатків часто виникає необхідність зберігати старі дані для аудиту чи звітності. Однак з міркувань конфіденційності та безпеки ви можете захотіти приховати чутливу інформацію. Таким чином, ви збережете записи в базі даних, але без чутливих даних.

Цей пакет працює шляхом реалізації інтерфейсу Redactable та впровадження його методів. Ви вільні реалізувати їх так, як вам подобається, але пакет надає певні рекомендації для спрощення процесу редагування даних. Ось як виглядає скелет моделі та методи інтерфейсу:

use AshAllenDesign\RedactableModels\Interfaces\Redactable;
use Illuminate\Contracts\Database\Eloquent\Builder;

class User extends Model implements Redactable
{
    public function redactable(): Builder
    {
        // Визначте критерії, за якими записи є "редагованими"
    }

    public function redactionStrategy(): RedactionStrategy
    {
        // Визначте стратегію та поля для редагування
    }
}

Метод redactionStrategy() використовується для визначення як редагувати дані моделі та які поля підлягають редагуванню. Під час ознайомлення з цим пакетом мені сподобалася стратегія MaskContents, адже вона дозволяє отримати підказки щодо конкретного запису, якщо вам потрібно зіставити його з реальними даними, або дати невелику підказку про дані без їх розголошення:

public function redactionStrategy(): RedactionStrategy
{
    return app(MaskContents::class)
        ->mask(field: 'name', character: '*', index: 0, length: 4)
        ->mask(field: 'email', character: '-', index: 2, length: 3);
}

# Основні функції

💻 Почати роботу з цим пакетом можна на GitHub: ash-jc-allen/redactable-models

Популярні

Logomark Logotype

Простий пакет RabbitMQ для Laravel

Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!

Logomark Logotype

Використання штучного інтелекту для управління перекладами в Laravel

Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!

Logomark Logotype

Як задокументувати кілька API в Laravel за допомогою Scramble

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