php常用的扩展包

本文章主要记录我在工作中常用的composer 开发包

  1. 字符串替换的 微模板引擎库 mustache (有c语言扩展版的)
安装 :  composer require mustache/mustache
 (new \Mustache_Engine())->render("hello {{name}},{{sex}}",[
            "name"=>"wj","sex"=>"男"
        ]); // hello wj,男
  1. http请求库 guzzlehttp/guzzle
安装 : composer require guzzlehttp/guzzle
详情使用参考文档: https://guzzle-cn.readthedocs.io/zh_CN/latest/quickstart.html#id2
  1. Jwt 生成
安装: composer require  firebase/php-jwt
  1. 雪花算法库 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解析出生成的时间

  1. uuid生成库
安装: composer require ramsey/uuid

6.根据ip地址查找归属地

安装: composer require ritaswc/zx-ip-address
$result = \Ritaswc\ZxIPAddress\IPv4Tool::query('114.114.114.114');
  1. 锁工具库 malkusch/lock
安装: composer require malkusch/lock
该库支持多种驱动实现 同步互斥锁。包括 redis,memcache,file,mysql驱动。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容