jeyroik/extas-player-current

There is no license information available for the latest version (0.1.0) of this package.

Extas current player package

0.1.0 2020-03-24 12:28 UTC

This package is auto-updated.

Last update: 2024-10-16 21:12:31 UTC


README

tests codecov.io PHPStan Enabled

Описание

Пакет содержит обёртку для получения текущего авторизованного пользователя с помощью плагинов.

Содержание

  • Установка
  • Использование
    • Подключение своего способа авторизации
      • Пример
        • Плагин
        • Запись в extas-совместимой конфигурации
        • Установка плагина
    • Применение

Установка

composer require jeyroik/extas-player-current:*

Использование

Подключение своего способа авторизации

Чтобы подключить свой способ авторизации пользователя необходимо лишь реализовать плагин.

Стадия = extas.player.current Вход: \extas\interfaces\players\IPlayer Выход: void

Пример

Плагин

namespace my\extas\plugins;

use \extas\components\plugins\Plugin;
use \extas\interfaces\players\IPlayer;
use \extas\interfaces\players\IPlayerRepository;

class PluginCookieCurrentPlayer extends Plugin
{
    public function __invoke(IPlayer &$player)
    {
        if (isset($_COOKIE['extas.player'])) {
            $playerName = $_COOKIE['extas.player'];
            /**
             * var $playerRepo IPlayerRepository
             */
            $playerRepo = SystemContainer::getItem(IPlayerRepository::class);
            $currentPlayer = $playerRepo->one([IPlayer::FIELD__NAME => $playerName]);
            $currentPlayer && ($player = $currentPlayer);
        }
    }
}

Запись в extas-совместимой конфигурации

{
  "plugins": [
    {
      "class": "my\\extas\\plugins\\PluginCookieCurrentPlayer",
      "stage": "extas.player.current"
    }
  ]
}

Установка

# /vendor/bin/extas i

Применение

setcookie('extas.player', 'jeyroik', time() + 3000, '/');

use \extas\components\players\Current;

echo Current::player()->getName(); // jeyroik