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
Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту
Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення