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: 2024-09-29 06:25:38 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(); }