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

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

记得三连~

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

 

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一码超人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值