一、前言概述
想必大家都应该知道uuid,它能生成不重复的唯一字符串,用于唯一标识非常实用,but在php中使用uuid是相当麻烦的。
①、因为需要安装uuid扩展,而且uuid扩展只支持在Linux(包括OS X)或Solaris操作系统上进行使用。(安装uuid扩展 就很麻烦了,因为 一个扩展的安装如果不顺利的话,安装过程中就会遇到各种各样的问题。但是功能很靠谱!)
②、而在windows系统下,如果要使用uuid,PHP提供了一个内置的 com_create_guid()函数(这是一个仅适用于Windows系统的 PHP函数。) 来实现uuid效果,需要注意的是,在php5.3或php5.4及以上高版本的php中,需要在php.ini配置文件中加载 php_com_dotnet.dll 扩展库文件才能使用 com_create_guid() 函数来进行生成uuid。安装说明见官方网站:https://www.php.net/manual/zh/com.installation.php
③、关于uuid的生成,mysql数据库也内置了一个可以生成uuid的函数,使用方式为:SELECT UUID(),在mysql5.7.34的版本中进行测试过,可以生成。更多说明及更多使用方式 可参考mysql官方文档:http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html#function_uuid
二、接下来要说的就是我们本片博文的主角!nanoid!
nanoid的几个特点:
更轻量级。(只有 179 字节(压缩)。没有依赖关系。它使用大小限制来控制大小。)
更安全。(它使用加密的强随机 API 并保证符号的正确分布)
更效率。(NanoID 比 UUID 快 60%。与 UUID 字母表中的 36 个字符不同,NanoID 只有 21 个字符。)
更方便。(有composer 包管理资源,一键安装直接使用。咳咳~~虽然 这条优点只针对于PHP程序猿开发者)
自定义性更强。(可以更短哦~)
支持更多开发语言。(C#、C++、Go、Java、JavaScript、Perl、PHP、Python、Ruby、Rust、Swift等)
题外话:nanoid是uuid的主要竞争对手。。号称 正在逐渐替代uuid。。
小总结:nanoid是什么?答:nanoid是一个用来生成一个 唯一ID的生成器。
三、Nanoid-php的安装及使用
安装:
# 安装php版本的nanoid composer require hidehalo/nanoid-php
具体使用如下所示:
include_once 'vendor/autoload.php'; use Hidehalo\Nanoid\Client; //使用nanoid对象 $client = new Client(); //默认随机生成器 echo '默认随机生成器:'.$client->generateId($size = 21).'<br/>'; //更安全的随机生成器 echo '更安全的随机生成器:'.$client->generateId($size = 21, $mode = Client::MODE_DYNAMIC).'<br/>'; //自定义长度 echo '自定义长度的随机生成器:'.$client->formattedId($alphabet = '01234567890qazwsxuhn', $size = 6).'<br/>'; exit;
测试输出效果图如下:
声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。
精彩评论