Php 使用Thrift生成的文件中的PSR-4命名空间
我使用Apache Thrift生成php文件Php 使用Thrift生成的文件中的PSR-4命名空间,php,namespaces,thrift,psr-4,Php,Namespaces,Thrift,Psr 4,我使用Apache Thrift生成php文件 thrift -out / --gen php:nsglobal=src\\Application\\Package\\Thrift package.thrift 上面的命令在下面的路径src/Application/Package/Thrift中生成代码,并为命名空间设置src\Application\Package\Thrift,但我在我的项目中使用了Psr-4(带composer),我们将src称为App,所以命名空间应该是App\Appl
thrift -out / --gen php:nsglobal=src\\Application\\Package\\Thrift package.thrift
上面的命令在下面的路径src/Application/Package/Thrift
中生成代码,并为命名空间设置src\Application\Package\Thrift
,但我在我的项目中使用了Psr-4(带composer),我们将src称为App,所以命名空间应该是App\Application\Package\Thrift
我的项目结构
src |
| Application |
| | Package |
| | | Thrift
我在Thrift文件夹中生成文件,名称空间如下所示:
App\Application\Package\Thrift
你有办法解决这个问题吗
我尝试将名称空间php App.Application.Package
添加到IDL文件并运行以下命令:
thrift -out /src --gen php /data/service.thrift
但它会创建额外的应用程序文件夹=>src/App/Application/Package/Thrift在IDL文件中声明名称空间:
namespace php Whatever.You.Want
完整的例子可以找到
另外,删除nsglobal选项,只需执行以下操作
thrift -out / --gen php package.thrift
我需要在名称空间中的应用程序和在文件夹名称中的src
如果您需要文件夹与命名空间所说的不同,请考虑编写一个shell脚本(或批处理文件)来将生成的文件移动到您需要的文件之后,以节省代码生成。
PS:不确定指定根文件夹作为输出目标是否是一个好主意。谢谢您的回答。但是当将这个名称空间(
namespace php-App.Application.Package.Thrift
)添加到我的Thrift文件并运行generate命令创建其他文件夹=>src\Application\Package\Thrift\App\Application\Package\Thrift
谢谢,我尝试了这个命令,但是文件夹应用程序被创建了。在我的项目src===App(psr-4 autoloader)中,我需要名称空间中的App和文件夹名称中的src