gpt4 book ai didi

php - 删除 Thrift 生成的 PHP 文件类名处的第一个 "\"

转载 作者:行者123 更新时间:2023-12-04 16:56:08 24 4
gpt4 key购买 nike

当我使用Thrift生成没有命名空间的PHP文件时(我想在后面给出命名空间),同:

//namespace php tutorial //don't use namspace

service Calculator {

void ping();

}

Thrift 将创建一个 Calculator.php:
namespace ; //error but no problem, i will give namespace after

interface CalculatorIf {

public function ping();

}

//problem at "\CalculatorIf"
class CalculatorClient implements \CalculatorIf {
//thrift code ...
}

问题是 "\CalculatorIf" ,这意味着\CalculatorIf 属于根命名空间(或没有命名空间),当我想给一个新的命名空间(例如“命名空间 MyNS;”)时,它会出错,因为\CalculatorIf 不属于我的新命名空间。如果 “CalculatorIf”(不带“\”)已生成,我将更改命名空间 wittout 这个问题。有很多地方是一样的,可怕! '

我希望它与下面相同:
namespace ; 

interface CalculatorIf {

public function ping();

}

//this is "CalculatorIf" and not "\CalculatorIf"
class CalculatorClient implements CalculatorIf {
//thrift code ...
}

最佳答案

PHP 生成提供了许多选项,其中thrift --help向您展示:

php (PHP):
inlined: Generate PHP inlined files
server: Generate PHP server stubs
oop: Generate PHP with object oriented subclasses
rest: Generate PHP REST processors
nsglobal=NAME: Set global namespace
validate: Generate PHP validator methods

所以解决方案是像这样调用 Thrift 编译器:
thrift -gen php:nsglobal=wtf  yourfile.thrift

这导致
interface CalculatorIf extends \wtf\SharedServiceIf {

关于php - 删除 Thrift 生成的 PHP 文件类名处的第一个 "\",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26627459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com