Playa: Cookie-Based тимчасові Players для Laravel

Перекладено ШІ 0 Laravel News 29 травня, 2026

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

Playa додає в Laravel-застосунки легку модель Player для відстеження неавторизованих користувачів. Це зручне рішення для сценаріїв із QR-кодами, ігор на івентах, систем голосування, кіосків та демоверсій, де потрібно впізнати пристрій без примусової реєстрації.

# Відстеження за допомогою Middleware

Додайте middleware playa до будь-якого маршруту, де потрібно ідентифікувати або створити гравця:

Route::get('/join/{game}', JoinGameController::class)
    ->middleware(['web', 'playa'])
    ->name('games.join');

Під час першого візиту middleware створює запис про гравця та встановлює cookie. При наступних запитах система ідентифікує наявного користувача та оновлює час дії сесії.

# Доступ до поточного Player

Playa дозволяє отримати дані гравця через request або facade:

$player = $request->player();
 
use CharlieLangridge\Playa\Facades\Playa;
 
$player = Playa::player();
$player = Playa::findByUuid($uuid);
Playa::forget();

Модель містить поля name та username, а також JSON-колонку data для збереження будь-яких специфічних даних: балів, відповідей чи прогресу користувача.

# Прив’язка до зареєстрованих користувачів

Профіль гравця можна об’єднати з реальним акаунтом. Це корисно, коли користувач починає взаємодію анонімно, а пізніше проходить авторизацію:

$player->linkUser(auth()->user());
$player->unlinkUser();

Пакет підтримує типи ключів bigint, uuid, ulid та string через конфігурацію user_id_type. Опція auto_link_authenticated_user дозволяє автоматично прив’язувати поточного користувача, якщо вона активована.

# Події життєвого циклу

Playa ініціює події на кожному етапі, що дозволяє гнучко налаштувати аналітику або аудит без втручання в middleware:

  • PlayerCreated
  • PlayerResolved
  • PlayerRenewed
  • PlayerExpired
  • PlayerLinkedToUser

# Термін дії та видалення даних

За замовчуванням дані зберігаються 30 днів і оновлюються при кожному візиті. Застарілі записи не видаляються автоматично — для очищення бази використовуйте Artisan-команду (можна також вказати пільговий період):

php artisan playa:prune
php artisan playa:prune --hours=24

Playa потребує PHP 8.4 та підтримує Laravel 11, 12 і 13.

Детальніше — у репозиторії на GitHub.

Популярні

Інше, що варто прочитати

13 Оновлено 29 травня, 2026

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

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

18 Оновлено 29 травня, 2026

Перетворення даних у типобезпечні DTO за допомогою пакету Data Model

Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю

37 Оновлено 29 травня, 2026

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

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