qh-8/laravel-snowflake

为Laravel生成Snowflake标识符

v1.1.2 2024-09-23 11:58 UTC

This package is auto-updated.

Last update: 2024-09-23 12:03:53 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

一个用于生成唯一snowflake ids的Laravel包。

kra8/laravel-snowflake分支而来。

要求

  • Laravel 10或更高版本

安装

composer require qh-8/laravel-snowflake

用法

使用Snowflake类生成和解码snowflake ids。

use Qh\LaravelSnowflake\Snowflake;

$snowflake = app(Snowflake::class)->generate(); // or via Facade: Snowflake::generate()

// 93977444276639021

$data = app(Snowflake::class)->decode(93977444276639021); // or via Facade: Snowflake::decode(int $id)

//[
//  'binary_length' => 57,
//  'binary' => '101001101110111111111110011010111000000100001010100101101',
//  'binary_timestamp' => '10100110111011111111111001101011100',
//  'binary_sequence' => '010100101101',
//  'binary_worker_id' => '00001',
//  'binary_datacenter_id' => '00001',
//  'timestamp' => 22405968732,
//  'sequence' => 1325,
//  'worker_id' => 1,
//  'datacenter_id' => 1,
//  'epoch' => 1704067200000,
//  'datetime' => '2024-09-16T07:52:48+00:00',
//]

在Eloquent模型中使用

use \Qh\LaravelSnowflake\HasSnowflakeIds;

class User extends Model
{
    use HasSnowflakeIds;
    
    //
}

请注意,表中的id列应为BIGINT类型。

测试

composer test

变更日志

请参阅CHANGELOG以获取更多信息。

安全

如果您发现任何与安全相关的问题,请发送电子邮件至dqh@dinhquochan.com,而不是使用问题跟踪器。

鸣谢

许可协议

MIT许可(MIT)。请参阅许可文件以获取更多信息。