2017 © Pedro Peláez
 

library gate

GateSystem

image

shiogong/gate

GateSystem

  • Wednesday, January 24, 2018
  • by ShiOGong
  • Repository
  • 1 Watchers
  • 1 Stars
  • 5 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

简介

本组件包含多票据的诸多处理策略,支持自定义扩展, (*1)

安装

composer install shiogong/gate

用例

初始化

// 入门票据基础类(用户输入的数据,存入相应的位置中)
$requestBean = new GateRequestBean();
// 票据关键值
$requestBean->setKeyValue($openId);
// 票据类型
$requestBean->setTicketType(UserToken::USER_TOKEN_TYPE_MINIPROGRAM);

// 票据存储的数据库model
$tokenModel = new UserToken();
// 票据的操作类
$ticketObj = new GateTicketOpenId($requestBean, $tokenModel);
// 初始化
$gate = new Gate($ticketObj);

设置数据Model

记得你是需要实现一个数据Model的,这个Model必须实现TicketModelInf接口, (*2)

授权认证

// 授权认证
$ticket = $gate->authentication();

票据动作(系统预设)

票据动作就是一些相关票据的标准业务模式, (*3)

创建票据

$action = new TicketCreate();
$gate->action($action);

扩展

扩展票据类型

你可能需要创建系统中不包括的票据类型,比如邮箱,用户名等., (*4)

1.继承抽象类GateTicketAbs

任意类继承抽象类GateTicketAbs,这个类是票据的基础类,任何票据都必须是这个抽象类的衍生类, (*5)

强制实现方法

继承之后,有几个需要强制实现的方法,这些方法与你的票据息息相关,这几个方法必须实现,并且做出相应的设置,isAuthenticateSuccess这个方法的返回值尤为重要,如果他返回true,直接视为此票据授权成功, (*6)

    /**
     * 是否需要密码
     * @return boolean
     */
    abstract public function isNeedPassword();

    /**
     * 认证流程
     * @return mixed
     */
    abstract public function authentication();

    /**
     * 是否授权成功
     * @return boolean
     */
    abstract public function isAuthenticateSuccess();

    /**
     * 外部直接设置授权是否成功
     * @param bool $isAuthenticateSuccess
     */
    abstract public function setIsAuthenticateSuccess($isAuthenticateSuccess);

    /**
     * 得到票据类型
     * @return int
     */
    abstract public function getTicketType();

   /**
    * 外部直接设置票据类型
    * @param null $ticketType
    */
    public abstract function setTicketType($ticketType);

    /**
     * 检查其他票据是否存在
     * @return mixed
     */
    abstract public function checkOtherTicketExist();
便利的上下文方法

该类还有几个专门获取上下文的方法, (*7)

    /**
     * 得到TokenModel
     * @return mixed
     */
    function getModel();

    /**
     * 得到从数据库中匹配的数据
     * @return mixed
     */
    function getMatchingTicketData();

    /**
     * 得到输入的数据
     * @return mixed
     */
    function getRequestBeanData();

预设的验证或工具方法

抽象类实现了几个核心流程方法,如果他们的验证方式不符合你的预期,你可以通过覆写的方式解决这个问题 ```$xslt /** * 匹配票据数据 * @return mixed */ function matchingTicket();, (*8)

/**
 * 检查输入的数据是否存在于model中
 * @return mixed
 */
function checkBasisDataExist();

```, (*9)

扩展操作

扩展自定义流程

The Versions

24/01 2018

dev-master

9999999-dev http://www.shiogong.com

GateSystem

  Sources   Download

MIT

The Requires

 

by Avatar ShiOGong

auth login own-system login-ticket