Atom - PHP唯一ID生成扩展


GPL
跨平台
PHP

软件简介

使用Twitter的 Snowflake算法,有兴趣可以了解一下这个算法: https://github.com/twitter/snowflake

php.ini的配置项:

[ukey]
ukey.datacenter = integer
ukey.worker = integer
ukey.twepoch = uint64
  • datacenter配置项是一个整数, 用于设置数据中心;

  • worker配置项是一个整数, 用于设置数据中心的机器序号;

  • twepoch配置项是一个64位的整数, 用于设置时间戳基数, 此值越大, 生成的ID越小;

Atom

Based on the Twitter Snowflake algorithm

PHP unique ID generator

functions list:

  • 1) string atom_next_id (void);
    Get the next unique ID.

  • 2) array atom_explain (string ID);
    Change unique ID to array includes: timestamp, datacenter id and worker id.

example:

<?php
$id = atom_next_id();
echo $id;

$info = atom_explain($id);
echo date('Y-m-d H:i:s', $info['timestamp']);
?>

install:

$  cd ./atom
$  phpize
$  ./configure
$  make
$  sudo make install

php.ini configure entries:

[atom]
atom.datacenter = integer
atom.worker = intger
atom.twepoch = uint64