jeyroik/extas-player-current

此包最新版本(0.1.0)没有可用的许可证信息。

Extas 当前播放器包

0.1.0 2020-03-24 12:28 UTC

This package is auto-updated.

Last update: 2024-09-16 20:59:50 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