使用 Thrift 生成的文件中的 PSR-4 命名空间

PSR-4 namespace in generated files with Thrift

我用 Apache Thrift 生成 php 个文件

thrift -out / --gen php:nsglobal=src\Application\Package\Thrift package.thrift

上面的命令在以下路径中生成代码 src/Application/Package/Thrift 并为命名空间设置 src\Application\Package\Thrift 但我在我的项目中使用 Psr-4(带有作曲家)我们知道 src 是 App 所以命名空间应该是App\Application\Package\Thrift

我的项目结构

src |
    | Application |
    |             | Package |
    |             |         | Thrift

我在 Thrift 文件夹中生成文件,命名空间与以下相同:

App\Application\Package\Thrift

你有解决这个问题的想法吗?

我尝试将 namespace php App.Application.Package 添加到 IDL 文件并 运行 以下命令:

thrift -out /src --gen php /data/service.thrift

但它会创建额外的 App 文件夹 => src/App/Application/Package/Thrift

在 IDL 文件中声明命名空间:

 namespace php Whatever.You.Want

可以找到完整示例here

此外,删除 nsglobal 选项并执行

thrift -out / --gen php package.thrift

i need App in namespace and src in folder name

如果您需要的文件夹与命名空间所说的不同,请考虑编写 shell 脚本(或批处理文件)以在 Thrift 代码生成后将生成的文件移动到您需要的位置。


PS:不确定将根文件夹指定为输出目标是否是个好主意。