thrift的php-v0.12版本类自动加载失败

Posted tc_goshawk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thrift的php-v0.12版本类自动加载失败相关的知识,希望对你有一定的参考价值。

参考网上教程,使用$loader->registerDefinition(\'Sample\', $GEN_DIR); 但是会报php Fatal error:  Uncaught Error: Class \'Sample\\formatDataClient\' not found in /Users/work/local/gopath/src/rpc/phprpc-client.php:32。也就是类加载失败啦。原因应该是因为php-v0.12版本使用的PSR-4 记载规范。并且提示使用$thriftClassLoader->registerNamespace(\'namespace\', \'<path>\') 而不是 u$thriftClassLoader->registerDefinition(\'namespace\', \'<path>\').

 

 

 

 

 

 

使用php的thrift,有两点需要注意:

1.需要将thrift/lib/php/*中的内容复制到自己定义的thrift的库目录,如phplib中,然后将子目录lib改成Thrift,否则会报错。因为是ClassLoader/ThriftClassLoader.php的152行地方的namespace是以Thrift\\开头的。

2.上面提到的服务也要用$loader->registerNamespace(\'Sample\', $dir)

 

以上是关于thrift的php-v0.12版本类自动加载失败的主要内容,如果未能解决你的问题,请参考以下文章

使用navicat连接mysql8.0.12版本 出现client does not support。。。解决办法

Thrift多路Service复用

Unity无法加载脚本?

Thrift RPC 从 c# 中的 thrift 客户端失败到在 HBase 服务器上旋转的 thrift 服务器

Anaconda安装sasl,thrift,thrift-sasl,PyHive连接Hive

Vagrant 没有加载正确的版本