加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Symfony4加载类自定义文件夹时出错“预计会找到类…但是

发布时间:2020-12-13 14:08:11 所属栏目:PHP教程 来源:网络整理
导读:问题 我正在尝试设置自定义目录结构 对于我的Symfony项目中的一些共享类.一世 想在我的根目录中创建一个自定义文件夹 项目,我想使用Symfony自动加载 自动注册服务的功能 那个文件夹. 所以我添加了一个自定义服务命名空间 services.yaml文件: # src ./config
问题

我正在尝试设置自定义目录结构
对于我的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 "TestNamespaceTestClass" 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 "TestNamespaceTestClass" 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再试一次.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读