Symfony Fileloader找不到现有类



也许我只是把名称空间搞砸了,但我没有看到。

我试图把Symfony应用程序中的一些类分离成一个包
我在Symfony中得到的错误是:

期望在文件中找到类"Shop\Admin\CategoryAdmin"C:\wamp64\www\call\bounds\Shop\src/Admin\CategoryAdmin.php"从资源"../bundles/Shop/src/*"导入服务,但找不到!检查中与资源一起使用的命名空间前缀C: \wamp64\www\call\config/services.yaml(加载在资源中"C:\wamp64\www\call\config/services.yaml"(。


这是我的服务。yaml:

Shop:
resource: '../bundles/Shop/src/*'
exclude: '../bundles/Shop/src/{Entity,Migrations,Tests}'
ShopController:
resource: '../bundles/Shop/src/Controller'
tags: ['controller.service_arguments']

文件结构如下:

project (C:wamp64wwwgall)
- bundles
- Shop
- src
- Admin
- CategoryAdmin.php
- config
- services.yaml

CategoryAdmin.php文件本身是这样的:

namespace ShopAdmin;
use ShopEntityCategory;
use SonataAdminBundleAdminAbstractAdmin;
use SonataAdminBundleDatagridListMapper;
use SonataAdminBundleDatagridDatagridMapper;
use SonataAdminBundleFormFormMapper;
use SymfonyBridgeDoctrineFormTypeEntityType;
use SymfonyComponentFormExtensionCoreTypeTextType;
use SymfonyComponentFormExtensionCoreTypeCheckboxType;
use SymfonyComponentDependencyInjectionContainerInterface;
use SonataTranslationBundleFilterTranslationFieldFilter;

/**
* Class CategoryAdmin
* @package ShopAdmin
*/
class CategoryAdmin extends AbstractAdmin
{
{...}
}

苏,这些路线看起来和错误中所说的完全一样。我不明白为什么FileLoader找不到这个类,有什么想法吗?

这是一个自动加载问题。

composer.json部分:

"autoload": {
"psr-4": {
"App\": "src/",
}
},

应用程序命名空间绑定到src文件夹。

将Shop名称空间注册为bundles/Shop,并删除bundles/Shop 下的src目录

编辑:我通常为捆绑包做这件事,我还没有准备好发布,但将来会发布。我的一个项目的例子:

"autoload": {
"psr-4": {
"App\": "src/",
"Padam87\AdminBundle\": "bundles/Padam87/AdminBundle/"
}
},

编辑2:不要忘记在更改后运行composer dump-autoload

相关内容

  • 没有找到相关文章

最新更新