当前,我的所有类都在一个文件夹中,并且位于一个命名空间下:
"psr-4": {
"RootNamespace\\": "lib/"
},效果很好。随着我添加越来越多的类,我希望将一些逻辑相关的类放入更深的命名空间级别,但使用相同的根命名空间。应该是这样的:
RootNamespace/Services (in 'lib/services' dir)
RootNamespace/Listeners (in 'lib/listeners' dir)我想这样我就不需要改变我的composer.json ps-4自动定义中的任何东西了,但是它不再起作用了。
自动定义应该是什么样子才能达到我想要的?
正如我所测试的,下面的解决方案并不好,因为声明似乎被覆盖了。
"psr-4": {
"RootNamespace\\": "lib/",
"RootNamespace\\Services\\": "lib/services/",
"RootNamespace\\Listeners\\": "lib/listeners/"
},发布于 2018-08-15 13:57:22
根据PSR-4规格
所有类名必须以区分大小写的方式引用。
您的配置是准确的,不同的PSR-4名称空间嵌套在同一个目录中。这应该是可行的,但可能会在今后变得混乱。
"psr-4": {
"RootNamespace\\": "lib/",
"RootNamespace\\Services\\": "lib/services/",
"RootNamespace\\Listeners\\": "lib/listeners/"
},我建议您要么简单地大写目录以匹配PSR规范,要么将RootNamespace移出顶级lib/目录。
https://stackoverflow.com/questions/41752330
复制相似问题