1
0
mirror of synced 2026-02-24 05:47:55 +08:00
Files
SnowFlake-IdGenerator/PHP/README.md
微希夷 bdff17e0c9 !14 修复WorkerId类型问题,添加多实例控制
* changed WorkerId from uint8_t to uint16_t
* Merge branch 'master' of https://gitee.com/laoyaosu/idgenerator
* use C89 style and fix perror invalid
* Merge branch 'master' of https://gitee.com/yitter/idgenerator
* 代码优化,注释掉不用的代码
* 增加版权信息
* Merge branch 'master' of https://gitee.com/yitter/idgenerator
* Merge branch 'master' of https://gitee.com/yitter/idgenerator
* 1.php extension add more check
* update readme
* fix min_seqnumber default value
* Merge branch 'master' of https://gitee.com/yitter/idgenerator
* fmt v code
* update php&vlang readme file
* Merge branch 'master' of https://gitee.com/yitter/idgenerator
* Merge branch 'master' of https://gitee.com/yitter/idgenerator
* 更严格的默认配置
* fix worker max num
* changed property num named wid_num
* Merge branch 'master' of https://gitee.com/yitter/idgenerator
* 修复MaxSeqNumber判断
* Merge branch 'master' of https://gitee.com/yitter/idgenerator
* fix init return
* Merge branch 'master' of https://gitee.com/yitter/idgenerator
* add README.md
* always lock
* fix shared memory addr
* use share memory
* fix malloc
* add make file
* add php ext
* Merge branch 'master' of https://gitee.com/yitter/idgenerator
* Merge branch 'master' of https://gitee.com/yitter/idgenerator
* Merge branch 'master' of https://gitee.com/yitter/idgenerator
* Merge branch 'master' of https://gitee.com/yitter/idgenerator
* Merge branch 'master' of https://gitee.com/yitter/idgenerator
* use lock and bit operation
2021-07-07 09:10:38 +00:00

52 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ❄ idgenerator-php-extension
## 介绍
项目更多介绍参照https://github.com/yitter/idgenerator
## PHP环境
* PHP7 or later
## 安装方式
```shell
git clone https://github.com/yitter/idgenerator.git
cd idgenerator/PHP
phpize
./configure --with-php-config=/path/php-config
make
make install
```
## 如何使用PHP
**配置文件配置参数**
```shell
//snowdrift.ini
snowdrift.Method=1 // 雪花计算方法,1-漂移算法|2-传统算法默认1
snowdrift.BaseTime=1582136402000 //基础时间ms单位不能超过当前系统时间
snowdrift.WorkerId=1 //机器码,必须由外部设定,最大值 2^WorkerIdBitLength-1
snowdrift.WorkerIdBitLength=6 //机器码位长默认值6取值范围 [1, 15](要求:序列数位长+机器码位长不超过22
snowdrift.SeqBitLength=6 //序列数位长默认值6取值范围 [3, 21](要求:序列数位长+机器码位长不超过22
snowdrift.MaxSeqNumber=0 //最大序列数(含),设置范围 [MinSeqNumber, 2^SeqBitLength-1]默认值0表示最大序列数取最大值2^SeqBitLength-1]
snowdrift.MinSeqNumber=5 //最小序列数默认值5取值范围 [5, MaxSeqNumber]每毫秒的前5个序列数对应编号0-4是保留位其中1-4是时间回拨相应预留位0是手工新值预留位
snowdrift.TopOverCostCount=2000 //最大漂移次数默认2000推荐范围 500-20000与计算能力有关
snowdrift.Multi=0 //是否支持多WorkerId0不支持可用WorkerId=snowdrift.WorkerId1支持(可用WorkerId=1~(2^WorkerIdBitLength-1))默认0
```
**函数签名**
```php
\SnowDrift::NextId(int $wid=snowdrift.WorkerId):?int //获取单个id$wid可选默认值=snowdrift.WorkerIdsnowdrift.Multi=0情况下会忽略此参数
\SnowDrift::NextNumId(int $num, int $wid=snowdrift.WorkerId):?array //获取$num个id$wid可选默认值=snowdrift.WorkerIdsnowdrift.Multi=0情况下会忽略此参数
```
**调用示例**
```php
$id=\SnowDrift::NextId();
$id=\SnowDrift::NextId(3);
$ids=\SnowDrift::NextNumId(10000);
$ids=\SnowDrift::NextNumId(10000,3);
```