jeyroik/extas-players

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

Extas 玩家包

4.0.0 2023-06-26 20:35 UTC

This package is auto-updated.

Last update: 2024-09-26 23:21:06 UTC


README

tests codecov.io Latest Stable Version Total Downloads Dependents

描述

本包提供用户管理机制。

使用方法

本包由以下部分组成

  • IPlayer - 玩家,即用户。
  • IPlayerIdentity - 玩家的身份或账户。一个玩家可以有多个账户。
  • IPlayerIdentityProvider - 账户提供者。

该机制工作方式如下

  1. 输入为供应商名称和账户当前值。
  2. 如果对于给定的“供应商+账户值”对存在账户,则意味着用户也存在。
  3. 如果账户不存在,则创建它。3.1. 如果在创建账户时有已登录的用户,则账户将绑定到该用户。
use extas\components\players\PlayerService;

$currentPlayer = PlayerService::getCurrentPlayer();

$identity = //get user identity form outside service
$playerName = $currentPlayer ? $currentPlayer->getName() : $identity;

$player = null;
$playerIdentity = $playerIdentityService->getIdentityByValue($this->client->getId(), $identity);
if (!$playerIdentity) {
        $playerIdentity = $playerIdentityService->createIdentity($this->client->getProvider(), $playerName, $identity) ;
}      
$player = $currentPlayer ?: $playerIdentity->getPlayer();
$playerService->login($player);