本文章主要记录我在工作中常用的composer 开发包
- 字符串替换的 微模板引擎库 mustache (有c语言扩展版的)
安装 : composer require mustache/mustache
(new \Mustache_Engine())->render("hello {{name}},{{sex}}",[
"name"=>"wj","sex"=>"男"
]); // hello wj,男
- http请求库 guzzlehttp/guzzle
安装 : composer require guzzlehttp/guzzle
详情使用参考文档: https://guzzle-cn.readthedocs.io/zh_CN/latest/quickstart.html#id2
- Jwt 生成
安装: composer require firebase/php-jwt
- 雪花算法库 snowflake
安装: composer require godruoyi/php-snowflake
第1个 bit 为未使用的符号位。
第2部分由 41 位的时间戳(毫秒)构成,他的取值是当前时间相对于某一时间的偏移量。
第3部分和第4部分的 5 个 bit 位表示数据中心和机器ID,其能表示的最大值为 2^5 -1 = 31。
数据中心 datacenter 和 workerid最大值为31
第5部分由 12 个 bit 组成,其表示每个工作节点每毫秒生成的序列号 ID,同一毫秒内最多可生成 2^12 -1 即 4095 个 ID。 每个中心的每个机器一毫秒可生产 4095个id。可保证绝对唯一
对比优势:
1.分布式系统中绝对唯一。
2.占位短,全部由数字组成, 没有设置时间信息长度为18. 设置时间信息长度为19位。实际开发中建议带上 带上时间戳信息,这样可以反解析出id的生成时间
3.携带信息量大,有踪迹可循,可以解析出大量信息。
$datacenter = 0; // 数据中心 取值范围 0-31。在分布式系统中
$workerid = 0; // 取值范围也是 0-31
$snowflake = new \Godruoyi\Snowflake\Snowflake($datacenter,$workerid);
$sfid =$snowflak->id(); // 生成id长度是18位
// $sfid = "6719170409868169216";
$parse = $snowflake->parseId($sfid,true);
$sfid =$snowflake->setStartTimeStamp(1)->id(); // 生成id长度是19位, 可以通过parse解析出生成的时间
- uuid生成库
安装: composer require ramsey/uuid
6.根据ip地址查找归属地
安装: composer require ritaswc/zx-ip-address
$result = \Ritaswc\ZxIPAddress\IPv4Tool::query('114.114.114.114');
- 锁工具库 malkusch/lock
安装: composer require malkusch/lock
该库支持多种驱动实现 同步互斥锁。包括 redis,memcache,file,mysql驱动。
网友评论