tatter / users
CodeIgniter 4 的用户界面和提供者
资助包维护!
tattersoftware
paypal.me/tatter
Requires
- php: ^7.4 || ^8.0
Requires (Dev)
- agungsugiarto/codeigniter4-authentication: dev-master
- codeigniter4/framework: ^4.1
- codeigniter4/shield: dev-develop
- myth/auth: dev-develop
- tatter/tools: ^2.0
This package is auto-updated.
Last update: 2024-09-17 18:43:25 UTC
README
CodeIgniter 4 的用户界面和提供者
快速入门
- 使用 Composer 安装:
> composer require tatter/users
- 查看支持的工厂列表或提供您自己的
- 通过提供的服务访问用户及其方法
$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
的库都能与您的用户类协同工作。目前以下库原生支持并且具有发现功能
- Myth:Auth
- CodeIgniter Shield (开发中)
- Agung Sugiarto 的 CodeIgniter4 Authentication
发现将返回它可以定位的第一个符合以下优先级的 UserFactory
实现
-
A
UserFactory
实现称为 "UserModel",由框架的模型工厂返回。相当于$users = model('UserModel', ['instanceOf' => UserFactory::class])
-
从
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
的模拟认证库。
开发
接受额外的库和适配器的拉取请求。如果您希望支持发现,请包括适当的测试和提供者代码。应将额外的实现请求作为功能请求问题打开,并且满足将取决于可用性和赞助(请参阅“赞助此项目”)。