Skip to content

imi 框架的雪花算法生成组件

License

Notifications You must be signed in to change notification settings

imiphp/imi-snowflake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

imi-snowflake

Latest Version Php Version Swoole Version IMI License

介绍

imi 框架的雪花算法生成组件

本仓库仅用于浏览,不接受 issue 和 Pull Requests,请前往:https://github.com/imiphp/imi

Composer

本项目可以使用composer安装,遵循psr-4自动加载规则,在你的 composer.json 中加入下面的内容:

{
    "require": {
        "imiphp/imi-snowflake": "~2.0.0"
    }
}

然后执行 composer update 安装。

使用

在项目 config/config.php 中配置:

[
    'components'    =>  [
        // 引入本组件
        'snowflake'    =>  'Imi\Snowflake',
    ],
]

配置

配置 @app.beans

[
    'Snowflake'   =>  [
        'list'  =>  [
            // 可定义多个配置名称
            'testBasic' =>  [
                // 'datacenterId'   => null, // 数据中心ID,未空时为0
                // 'workerId'       => null, // 工作进程ID,为空时取当前进程ID
                // 'startTimeStamp' => null, // 开始时间戳,单位:毫秒
                // 'redisPool'      => null, // Redis 连接池名称,为空取默认连接池
            ],
        ],
    ],
]

生成ID

$id = \Imi\Snowflake\SnowflakeUtil::id('testBasic');

解析ID

$array = \Imi\Snowflake\SnowflakeUtil::parseId('testBasic', $id);
var_dump($array);

处理结果格式:

array(4) {
  ["timestamp"]=>
  string(35) "10100100111111101010001000001110010"
  ["sequence"]=>
  string(12) "000000000000"
  ["workerid"]=>
  string(5) "00000"
  ["datacenter"]=>
  string(5) "00000"
}

免费技术支持

QQ群:17916227 点击加群,如有问题会有人解答和修复。

运行环境

版权信息

imi-snowflake 遵循 MIT 开源协议发布,并提供免费使用。

鸣谢

感谢 godruoyi/php-snowflake 为 imi-snowflake 提供算法驱动!

捐赠

开源不求盈利,多少都是心意,生活不易,随缘随缘……