为什么要用Thrift?
目前流行的服务调用方式有很多种,例如基于 SOAP(SOAP:Simple Object Access Protocol) 消息格式的 Web Service,基于 JSON 消息格式的 RESTful 服务等。其中所用到的数据传输方式包括 XML,JSON 等,然而 XML 相对体积太大,传输效率低,JSON 体积较小,新颖,但还不够完善。本文将介绍由 Facebook 开发的远程服务调用框架 Apache Thrift,它采用接口描述语言定义并创建服务,支持可扩展的跨语言服务开发,所包含的代码生成引擎可以在多种语言中,如 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk 等创建高效的、无缝的服务,其传输数据采用二进制格式,相对 XML 和 JSON 体积更小,对于高并发、大数据量和多语言的环境更有优势。
下载地址?
http://thrift.apache.org/download/
目录结构
1.源文件/lib/php/lib/Thrift/ ----------------------这个就是thrift的文件包,需要放到你的文件下
2.源文件/test/php/TestClient.php ----------------------这个是thrift客户端php的事例代码,可以用作参考
服务端是c++已经配置好了,百度了很多文章,代码拷贝到项目里缺总是出现找不到class的问题。最后仔细看thrift的test代码,发现首先需要注册php的autoload的函数。
require_once __DIR__.'/../../../../lib/Thrift/ClassLoader/ThriftClassLoader.php';$loader = new ThriftClassLoader();$loader->registerNamespace('Thrift', __DIR__ . '/../../../../lib');$loader->registerNamespace('Test', __DIR__ . '/../../..');$loader->registerDefinition('ThriftTest', __DIR__ . '/../../../packages');$loader->register();