Download the PHP package limingxinleo/thrift-go-phalcon-project without Composer

On this page you can find all versions of the php package limingxinleo/thrift-go-phalcon-project. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package thrift-go-phalcon-project

PHALCON框架结构

Total Downloads Latest Stable Version Latest Unstable Version License

Phalcon 官网

wiki

安装

  1. 安装项目
    composer create-project limingxinleo/thrift-go-phalcon-project
  2. 使用Composer安装Thrift扩展后,把go的扩展包拷贝到GOPATH中(或建立软连接)。
    ln -s  /your/path/to/thrift-go-phalcon-project/vendor/apache/thrift/lib/go/thrift thrift
  3. 编译服务

    • Go 使用 thrift -r --gen go:thrift_import=thrift App.thrift
    • Php 使用 thrift -r --gen php:server,psr4 App.thrift
  4. Go服务安装
    从GO官网下载编译好的压缩包 例如 go1.8.3.linux-amd64.tar.gz
    $ tar -xzf go1.8.3.linux-amd64.tar.gz
    $ mv go /usr/local/go/1.8.3
    $ vim /etc/profile 
    export GOROOT='/usr/local/go/1.8.3' # 没有文件夹则新建
    export GOPATH='/usr/local/go/libs/' # 没有文件夹则新建
    export PATH=$GOROOT/bin:$PATH
    $ go get -u github.com/kardianos/govendor
    $ cd /usr/local/go/libs/src/github.com/kardianos/govendor/
    $ go build
    $ cd /usr/local/bin
    $ ln -s /usr/local/go/libs/src/github.com/kardianos/govendor/govendor govendor

Go&Swoole RPC 服务

服务实现

负载均衡

服务发现

  1. 项目本人已内置基于Thrift的注册中心功能

    • 已实现Swoole服务注册中心
    • 已实现Go服务注册中心
  2. 或者配合注册中心一起使用 app/tasks/Thrift/ServiceTask.php

    
    protected function beforeServerStart(swoole_server $server)
    {
    parent::beforeServerStart($server); // TODO: Change the autogenerated stub
    
    // 增加服务注册心跳进程
    $worker = new swoole_process(function (swoole_process $worker) {
        $client = new swoole_client(SWOOLE_SOCK_TCP);
        if (!$client->connect(env('REGISTRY_IP'), env('REGISTRY_PORT'), -1)) {
            exit("connect failed. Error: {$client->errCode}\n");
        }
        swoole_timer_tick(5000, function () use ($client) {
            $service = env('REGISTRY_SERVICE', 'github');
            $data = [
                'service' => $service,
                'ip' => env('SERVICE_IP'),
                'port' => env('SERVICE_PORT'),
                'nonce' => time(),
                'register' => true,
                'sign' => 'xxx',
            ];
    
            $client->send(json_encode($data));
            $result = $client->recv();
    
            $result = json_decode($result, true);
            if ($result['success']) {
                foreach ($result['services'] as $key => $item) {
                    Redis::hset($service, $key, json_encode($item));
                }
            }
        });
    });
    
    $server->addProcess($worker);
    }

## Thrift 数据类型
1. 基本类型(括号内为对应的Java类型):

bool(boolean): 布尔类型(TRUE or FALSE) byte(byte): 8位带符号整数 i16(short): 16位带符号整数 i32(int): 32位带符号整数 i64(long): 64位带符号整数 double(double): 64位浮点数 string(String): 采用UTF-8编码的字符串


2. 特殊类型(括号内为对应的Java类型)

binary(ByteBuffer):未经过编码的字节流


3. Structs(结构):

struct UserProfile { 1: i32 uid, 2: string name, 3: string blurb }

struct UserProfile { 1: i32 uid = 1, 2: string name = "User1", 3: string blurb }


4. 容器,除了上面提到的基本数据类型,Thrift还支持以下容器类型:

> list(java.util.ArrayList)
> set(java.util.HashSet)
> map(java.util.HashMap)

struct Node { 1: i32 id, 2: string name, 3: list subNodeList, 4: map<i32,string> subNodeMap, 5: set subNodeSet }

struct SubNode { 1: i32 uid, 2: string name, 3: i32 pid }

struct Node { 1: i32 uid, 2: string name, 3: list subNodes }


5. 服务

service UserStorage { void store(1: UserProfile user), UserProfile retrieve(1: i32 uid) }


All versions of thrift-go-phalcon-project with dependencies

PHP Build Version
Package Version
Requires php Version >=5.6
ext-phalcon Version ^3.0
limingxinleo/thrift Version ^0.11.0
limingxinleo/phalcon-project-library Version ^1.1.3
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package limingxinleo/thrift-go-phalcon-project contains the following files

Loading the files please wait ....