delz/snowflake-php-sdk

Snowflake PHP SDK

1.0 2018-07-17 12:49 UTC

This package is not auto-updated.

Last update: 2024-09-29 06:25:38 UTC


README

此客户端SDK的服务端由Golang实现,源码在

https://github.com/delznet/snowflake

此SDK的先决条件包括:

  1. 安装gRPC扩展

http://pecl.php.net/package/gRPC

  1. protobuf扩展

http://pecl.php.net/package/protobuf

安装扩展很简单,只需执行phpize、configure、make && make install这三个步骤即可

  1. 依赖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();
}