thejawker / super-random

允许轻松生成唯一的代码,对Laravel应用程序的数据库有感知。

v1.0.2 2018-02-19 12:48 UTC

This package is auto-updated.

Last update: 2024-09-19 10:02:09 UTC


README

Latest Version on Packagist Build Status Quality Score Total Downloads

创建真正唯一代码或令牌的优雅流畅方式。

安装

从Composer要求该包

composer require thejawker/super-random

从Laravel 5.5开始,它将神奇地注册该包。

用法

只需简单调用SuperRandom Facade上的generate方法或方便的快捷助手函数。

$code = SuperRandom::generate();
echo $code; // 

$code = superRandom();

示例

数据库感知

通常你不想在数据库中有多个相同的代码或令牌。虽然与数据库比较很容易,但需要在各处重复实现这一点确实很烦人。通过在for方法中指定table.column,你可以轻松使其具有条目感知。

ConcertTicket::create([
    'band' => 'DYSSEBIA',
    'code' => SuperRandom::for(ConcertTicket::class)->generate()
]);

// Or more explicit:
ConcertTicket::create([
    'band' => 'DYSSEBIA',
    'code' => SuperRandom::for('concerts.code')->generate()
]);

长度

你可以指定以下长度

ConcertTicket::create([
    'band' => 'DYSSEBIA',
    'code' => SuperRandom::length(12)->generate()
]);

允许的字符

你可以指定以下允许的字符

ConcertTicket::create([
    'band' => 'DYSSEBIA',
    'code' => SuperRandom::chars('abc123')->generate()
]);

默认情况下,我们只包括数字和UPPERCASE字符,排除: 1, I, O, 0,因为它们看起来很相似,你不希望用户猜测。

完整配置

你可以在generate()方法上直接设置配置。

ConcertTicket::create([
    'band' => 'DYSSEBIA',
    'code' => SuperRandom::generate([
        'table' => 'concerts',
        'column' => 'code',
        'length' => 15,
        'chars' => 'abc123'
    ])
]);

测试

composer test

许可证

MIT许可证(MIT)。请参阅许可证文件获取更多信息。