subiabre / doctrine-snowflakes
实现雪花算法的自定义ID生成器
2.0
2023-11-13 19:04 UTC
Requires
- doctrine/orm: ^2.16
- godruoyi/php-snowflake: ^3.0
Requires (Dev)
- phpunit/phpunit: ^10.4
This package is auto-updated.
Last update: 2024-09-23 23:39:16 UTC
README
Doctrine的ID生成器,实现了雪花算法。
安装
$ composer require subiabre/doctrine-snowflakes
使用方法
在您的实体类中
#[ORM\Id()] #[ORM\GeneratedValue(strategy: "CUSTOM")] #[ORM\CustomIdGenerator(class: SnowflakeGenerator::class)] #[ORM\Column(type: Types::BIGINT] private string $id;
请考虑PHP没有合适的bigint
数据类型。由于这个限制,doctrine-snowflake ID应该作为string
使用。
public function getId(): string
测试
此包包含使用PHPUnit库的单元测试。运行测试使用
./vendor/bin/phpunit
默认测试用例在10个批次中进行并发和唯一性测试,每个批次300个ID,或者您可以使用以下命令提供任何批次大小
BATCH_SIZE=1000 ./vendor/bin/phpunit