Генерація постійних унікальних значень у Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 29 березня, 2025
Вам коли-небудь потрібно було генерувати унікальні значення у вашому додатку Laravel? Досліджте пакет Laravel Unique Values, який не лише створює унікальні значення з підтримкою одночасності, але й дозволяє налаштовувати генерацію та максимальну кількість спроб

Laravel Unique Values — це пакет, який генерує постійні унікальні значення з підтримкою роботи в умовах конкурентності. Він має функції, такі як підтримка конкурентних запитів та налаштування генератора, а також зберігає унікальні значення в базі даних:

use JustBetter\UniqueValues\Support\UniqueValue;
 
$uniqueValue = UniqueValue::make()
    ->scope("unique-scope")
    ->generator(function (int $attempt): string {
        return match ($attempt) {
            0 => "unique-value",
            default => "unique-value-" . $attempt
        };
    })
    ->generate();

Запуск цього коду згенерує unique-value, unique-value-1, unique-value-2. При четвертій спробі буде викинуто виняток:

Не вдалося згенерувати унікальне значення після трьох спроб для області "unique-scope"

В таблиці бази даних unique_values буде три записи для згенерованих унікальних значень:

Генератор унікальних значень також підтримує метод attempts() (за замовчуванням — 3). Якщо досягнуто максимальної кількості спроб, буде викинуто той самий виняток, залежно від кількості спроб.

Також ви можете додати тему, щоб отримати вже згенероване значення для конкретної теми:

use JustBetter\UniqueValues\Support\UniqueValue;
 
$uniqueValue = UniqueValue::make()
    ->scope("unique-scope")
    ->subject("demo-subject")
    // ...

Використовуючи тему, ви отримаєте одне унікальне значення, як показано в цьому прикладі з бази даних:

Якщо ви знову викличете вище наведений код, змінивши тему, наступне згенероване унікальне значення буде unique-scope-1:

# Основні можливості

Дізнайтеся більше про цей пакет та отримайте інструкції з установки на GitHub: justbetter/laravel-unique-values. Установити пакет можна через Composer, використовуючи команду:

composer require justbetter/laravel-unique-values