delz / snowflake-php-sdk
snowflake php sdk
1.0
2018-07-17 12:49 UTC
Requires
- php: >=7.0.0
- grpc/grpc: >=1.13.0
This package is not auto-updated.
Last update: 2025-04-27 09:08:40 UTC
README
此客户端sdk的服务端由golang实现,源码在
https://github.com/delznet/snowflake
此sdk实时的先决条件:
- 安装gRPC扩展
http://pecl.php.net/package/gRPC
- protobuf扩展
http://pecl.php.net/package/protobuf
安装扩展没有啥可讲的,phpize、configure、make && make install三步走即可
-
依赖grpc/grpc包,可通过composer安装
composer require grpc/grpc
代码参考
<?php use Delz\Snowflake\SnowflakeClient; use Delz\Snowflake\SnowflakeRequest; use Grpc\ChannelCredentials; //利用composer自动加载,具体路径请修改 require __DIR__ . '/vendor/autoload.php'; $client = new SnowflakeClient('127.0.0.1:7890', ['credentials'=>ChannelCredentials::createInsecure()]); $request = new SnowflakeRequest(); //业务ID $request->setServiceId(0); //设置返回id格式为int64 $request->setFormat('int64'); //二进制 //$request->setFormat('base2'); //36进制 26字母+10个数字 //$request->setFormat('base36'); //base32 //$request->setFormat('base32'); //base58 //$request->setFormat('base58'); //base64 //$request->setFormat('base64'); list($reply,$status) = $client->Gen($request)->wait(); if($status->code != 0) { echo "服务器故障"; } else { //获取id echo $reply->getId(); }