php使用nanoid比UUID更好用

        想必大家都应该知道UUID,尤其是做java的。它能生成不重复的唯一字符串,用于标识非常实用,可是在php中使用UUID是相当麻烦的。通常都是前端在使用nanoid,也没看到csdn上讲php版如何使用,特此发文。

我找到的php-uuid的使用方案:

        1、安装uuid扩展。(那这就很麻烦了,一个扩展的安装很耗时和各种奇怪的安装问题。但是功能很靠谱!)

        2、自行实现uuid函数。(网上有很多这样得文章,但是确定会很靠谱嘛?)

所以接下来要说的就是我们的主角!nanoid!

nanoid的几个特点:

1、更轻。(只有 179 字节(压缩)。没有依赖关系。它使用大小限制来控制大小。

2、更安全。(它使用加密的强随机 API 并保证符号的正确分布

3、更效率。(NanoID 比 UUID 快 60%。与 UUID 字母表中的 36 个字符不同,NanoID 只有 21 个字符。

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz-

4、更方便。(有composer 包管理资源,一键安装直接使用。)

5、自定义性更强。(可以更短哦~)

6、支持更多开发语言。

C#、C++、Clojure 和 ClojureScript、Crystal、Dart & Flutter、Deno、Go、Elixir、Haskell、Janet、Java、Nim、Perl、PHP、带字典的 Python、Ruby、Rust、Swift

通过以上特点,我们还有什么理由不使用呢?

本文以thinkphp为例:

1、安装Nanoid-php,命令如下:

composer require hidehalo/nanoid-php

929baee6dfc14235be845ab3dea569bf.png 下载完成,如下:

f52fb6077da94f83ac6b1eb44c4b840e.png

2、路由接口测试,代码如下:

b84c42afbf694eceb7a4035e2d76a665.png

<?php
namespace app\controller;

use app\BaseController;
//nanoid方法类
use Hidehalo\Nanoid\Client;

class Index extends BaseController
{

    public function nanoid(){

        //使用nanoid对象
        $client = new Client();
        //默认随机生成器
        echo '默认随机生成器:'.$client->generateId($size = 21).'<br/>';
        //更安全的随机生成器
        echo '更安全的随机生成器:'.$client->generateId($size = 21, $mode = Client::MODE_DYNAMIC).'<br/>';
        //自定义长度
        echo '自定义长度的随机生成器:'.$client->formattedId($alphabet = '0123456789abcdefg', $size = 21).'<br/>';
    }

}

3、测试输出,如下:

6feeeed26cf04fe687ac00bf287ed264.png

 具体怎么实用,剩下的就交给强大的你了~

记得三连~

海蜘蛛:只要自己足够的废物,就没有天敌!

猜你喜欢

转载自blog.csdn.net/weixin_47723549/article/details/124583542