问题
我正在尝试设置自定义目录结构
对于我的Symfony项目中的一些共享类.一世
想在我的根目录中创建一个自定义文件夹
项目,我想使用Symfony自动加载
自动注册服务的功能
那个文件夹.
所以我添加了一个自定义服务命名空间
services.yaml文件:
# src ./config/services.yaml services: ... TestNamespace\: resource: '../TestNamespace/*' ...
# src ./TestNamespace/TestClass.PHP namespace TestNamespace; class TestClass { }
当我运行应用程序时,我收到以下错误:
(1/2) InvalidArgumentException Expected to find class "TestNamespace\TestClass" in file "/path/to/ClassLoadErrorDemo/demo/TestNamespace/TestClass.PHP" while importing services from resource "../TestNamespace/*",but it was not found! Check the namespace prefix used with the resource. (2/2) FileLoaderLoadException Expected to find class "TestNamespace\TestClass" in file "/path/to/ClassLoadErrorDemo/demo/TestNamespace/TestClass.PHP" while importing services from resource "../TestNamespace/*",but it was not found! Check the namespace prefix used with the resource in /path/to/ClassLoadErrorDemo/demo/config/services.yaml (which is loaded in resource "/path/to/ClassLoadErrorDemo/demo/config/services.yaml").
我仔细检查了路径,命名空间和类
多次命名,一切似乎都很好,我
不明白为什么我仍然得到错误.
./src文件夹中的控制器似乎加载正常.
我在这做错了什么?
重现步骤
我创建了一个演示仓库以隔离问题.
git clone https://github.com/smoelker/SymfonyClassLoadErrorDemo.git cd SymfonyClassLoadErrorDemo/demo composer install mv TestNamespace/TestClass.PHP_ TestNamespace/TestClass.PHP PHP bin/console server:start
更新您的composer.json自动加载设置
{ [...] "autoload": { "psr-4": { "TestNamespace\\": "TestNamespace/","": "src/" } },[...] }
运行后:composer dump-autoload再试一次.