taylornetwork / username-suggester
一个基于 taylornetwork/laravel-username-generator 的用户名建议包
Requires
- php: ^8.0|^8.1
- illuminate/support: >=8.0
- taylornetwork/laravel-username-generator: ^2.6
Requires (Dev)
- orchestra/testbench: ^6.20
- psy/psysh: ^0.10.8
This package is auto-updated.
Last update: 2024-09-08 03:01:09 UTC
README
从 taylornetwork/laravel-username-generator 提供用户名建议的包
如果您想在用户选择不可用的情况下向用户显示基于他们输入的用户名建议列表,这会很有用。
安装
通过 composer
$ composer require taylornetwork/username-suggester
发布配置
这将发布到 config/username_suggester.php
$ php artisan vendor:publish --provider="TaylorNetwork\UsernameSuggester\UsernameSuggesterProvider"
设置
您需要遵循 快速入门指南 来设置 taylornetwork/laravel-username-generator。
至少您的 User
模型需要使用 TaylorNetwork\UsernameGenerator\FindSimilarUsernames
(参见 设置)
默认值
建议器将根据给定的名字生成 3
个独特的用户名。它将使用 increment
驱动程序,该驱动程序将使用 TaylorNetwork\UsernameGenerator\Generator
类将名字转换为用户名,并在末尾添加递增的数字以使其唯一。
如果没有输入名字,它将生成随机用户名,与 TaylorNetwork\UsernameGenerator\Generator
相同。
用法
可用方法
suggest
suggest()
方法接受一个可选的参数,用于为建议用户名。
$suggester = new \TaylorNetwork\UsernameSuggester\Suggester(); $suggester->suggest(); // Returns a collection of random unique usernames $suggester->suggest('test user'); // Returns a collection of unique usernames based on the name 'test user'
setDriver
这将允许您设置与默认不同的驱动程序。
$suggester->setDriver('random');
此方法返回 Suggester
类的实例,因此您可以使用链式方法。
setAmount
这将允许您设置与默认不同的建议数量。
$suggester->setAmount(10);
此方法返回 Suggester
类的实例,因此您可以使用链式方法。
setGeneratorConfig
这将允许您覆盖 TaylorNetwork\UsernameGenerator\Generator
配置。
$suggester->setGeneratorConfig([ 'separator' => '*', ]);
与 setAmount
和 setDriver
相同,此方法也返回 Suggester
实例。
示例
基本用法与随机用户名
$suggester->suggest();
基本用法与输入的名字
$suggester->suggest('test user');
不同的驱动程序和数量
$suggester->setDriver('random')->setAmount(5)->suggest('test user');
这将使用 Random
驱动程序在用户名后附加随机数字并生成 5 个用户名。
使用外观
包含了一个 UsernameSuggester
外观,因此可以通过这种方式访问所有方法。
UsernameSuggester::suggest();
自定义驱动程序
您可以通过扩展 TaylorNetwork\UsernameSuggester\Drivers\BaseDriver
类来创建任何自定义驱动程序。
namespace App\SuggesterDrivers; use TaylorNetwork\UsernameSuggester\Drivers\BaseDriver; class CustomDriver extends BaseDriver { public function makeUnique(string $username): string { return $username; } }
唯一要求是实现 makeUnique
方法,以某种方式使用户名唯一。
您还需要在 app/username_suggester.php
中注册驱动程序。
'drivers' => [ 'custom' => CustomDriver::class, // ... ],
您可以使用设置的密钥来访问它。
UsernameSuggester::setDriver('custom')->suggest();