taylornetwork/username-suggester

一个基于 taylornetwork/laravel-username-generator 的用户名建议包

0.1.1 2022-06-07 21:27 UTC

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' => '*',
]);

setAmountsetDriver 相同,此方法也返回 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();