qh-8 / laravel-snowflake
为Laravel生成Snowflake标识符
v1.1.2
2024-09-23 11:58 UTC
Requires
- php: ^8.2
- illuminate/database: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
Requires (Dev)
- laravel/framework: ^10.0|^11.0
- laravel/pint: ^1.17
- phpunit/phpunit: ^11.0
README
一个用于生成唯一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)。请参阅许可文件以获取更多信息。