我正在编写一个通过Thrift进行通信的应用程序。我正在使用Thrift 0.9.0(在OSX上通过自制软件安装)。我有一个工作的Java服务器和客户端,但我正在努力编写PHP服务器,因为没有生成* Processor类。
Thrift的PHP文档是essentially absent,但我期望生成* Processor类,因为:
但是,当我从tutorial.thrift文件(thrift -r --gen php:namespace tutorial.thrift
)生成PHP代码时,生成的Calculator.php不包含CalculatorProcessor类。
我错过了什么吗?
答案 0 :(得分:3)
写这个问题的过程促使我找到答案!
我正在生成php:namespace
,但这是使用Thrift 0.8.0的结果。实际上,0.8中不存在“命名空间”(大概是因为命名空间总是添加到0.9中生成的PHP)。 thrift --help
的输出列出php:server
,它“生成PHP服务器存根”。这显然意味着生成了PHP * Processor类。
答案 1 :(得分:1)
我有一个非常类似的应用程序(Java Server with PHP Client)。
我有以下thrift定义文件:
namespace java com.blogspot.symfonyworld.wealthylaughingduck.thrift.generated
namespace php SymfonyWorld.WealthyLaughingDuck
# definitions below
我运行以下命令来重新生成thrift类:
thrift -r --gen java -out src/main/java src/submodules/commons/thrift/service.thrift
thrift -r --gen php:oop,namespace,autoload -out src/main/php/packages src/submodules/commons/thrift/service.thrift
它就像一个魅力:)看看我的github application - 它开箱即用(您可以在界面中单击时观看Java log4j输出)。