tatter users

CodeIgniter 4 的用户界面和提供者

v1.3.0 2022-05-16 12:59 UTC

This package is auto-updated.

Last update: 2024-09-17 18:43:25 UTC


README

CodeIgniter 4 的用户界面和提供者

Coverage Status

快速入门

  1. 使用 Composer 安装: > composer require tatter/users
  2. 查看支持的工厂列表或提供您自己的
  3. 通过提供的服务访问用户及其方法
$users = service('users'); // instance of Tatter\Users\UserFactory
$user  = $users->findByEmail('[email protected]'); // instance of Tatter\Users\UserEntity
echo $user->getUsername(); // "billy_jean"

描述

并非认证模块本身,Tatter\Users 带来了常见的接口和工厂发现,以简化用户集成到其他库和项目中。

安装

通过 Composer 轻松安装以利用 CodeIgniter 4 的自动加载功能并始终保持最新

  • > composer require tatter/users

或者,通过下载源文件并将其添加到 app/Config/Autoload.php 中手动安装。

配置

Users 的核心是用户实体和用户工厂的接口。您的项目可以使用内置的类或提供自己的实现,然后任何使用 Tatter\Users 的库都能与您的用户类协同工作。目前以下库原生支持并且具有发现功能

发现将返回它可以定位的第一个符合以下优先级的 UserFactory 实现

  1. A UserFactory 实现称为 "UserModel",由框架的模型工厂返回。相当于

    $users = model('UserModel', ['instanceOf' => UserFactory::class])

  2. UserProvider 中发现的兼容库。

注意:如果您的实现与第一点不兼容,则可以直接将其提供给提供者。

\Tatter\Users\UserProvider::addFactory(MyDiscoveryClass::class, MyFactory::class);

用法

一旦您有了必要的类可用,最简单的方法就是通过 Users 服务访问它们

$users = service('users')->findByEmail('[email protected]'); // instance of Tatter\Users\UserFactory
$user  = $users->findByEmail('[email protected]'); // instance of Tatter\Users\UserEntity

工厂

用户工厂接口定义了以下方法

  • findById()
  • findByEmail()
  • findByUsername()

实体

用户实体接口定义了以下方法

  • getIdentifier()
  • getId()
  • getEmail()
  • getUsername()
  • getName()
  • isActive()

Tatter\Users\Interfaces 命名空间中存在扩展接口,它们提供了可能由某些库所需的一些额外方法。检查您的库要求以确保您使用了所有必需的接口。

测试

Tatter\Users\Test 中有便利的测试用例,以使其他库能够添加并测试它们自己的类。如果您想在不承诺特定提供者的情况下测试用户接口,请考虑添加 Tatter\Imposter - 一个完全符合 Tatter\Users 的模拟认证库。

开发

接受额外的库和适配器的拉取请求。如果您希望支持发现,请包括适当的测试和提供者代码。应将额外的实现请求作为功能请求问题打开,并且满足将取决于可用性和赞助(请参阅“赞助此项目”)。