<?php
/**
* 使用雪花算法生成订单ID
* @return string
* @throws \Exception
*/
function getNewOrderId(string $prefix = 'wx')
{
$snowflake = new \Godruoyi\Snowflake\Snowflake();
$swooleSequenceResolver = new \Godruoyi\Snowflake\SwooleSequenceResolver();
//32位
if (PHP_INT_SIZE == 4) {
$id = abs($snowflake->setSequenceResolver($swooleSequenceResolver)->id());
} else {
$id = $snowflake->setStartTimeStamp(strtotime('2021-08-02') * 1000)->setSequenceResolver($swooleSequenceResolver)->id();
}
return $prefix . $id;
}
通过composer加载组件:
"godruoyi/php-snowflake": "^1.0",