无法声明 class 已在使用中

Cannot declare a class already in use

我尝试在我的项目上安装和配置 SonataUserBundle。我正确安装并配置了 SonataAdminBundle,一切正常。但是在扩展包并生成应用程序之后我有错误。 我正在使用 Symfony 3.4 版本。

php app/console sonata:easy-extends:generate SonataUserBundle -d src

在我的 src 文件夹中创建了一个名为 Application 的文件夹,其中包含生成的应用程序。 我也将其添加到我的 bundles.php 文件中:

Sonata\UserBundle\SonataUserBundle::class => ['all' => true],
Application\Sonata\UserBundle\ApplicationSonataUserBundle::class => ['all' => true],

并配置了我的路由,但是当我 运行 我的网站时,我得到了这个错误:

Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "ApplicationSonataUserBundle" from namespace "Application\Sonata\UserBundle".

您是否忘记了另一个命名空间的 "use" 语句?在 C:\wamp64\www\staff-ma\src\Kernel.php:33

我的 ApplicationSonataUserBundle class :

namespace Application\Sonata\UserBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class ApplicationSonataUserBundle extends Bundle
{
   /**
   * {@inheritdoc}
   */
   public function getParent()
   {
      return 'SonataUserBundle';
   }
}

我的composer.json:

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

我补充说:

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

但我又遇到了同样的错误。

解决问题。我刚刚在我的命名空间中添加了 App :

namespace App\Application\Sonata\UserBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

/**
 * This file has been generated by the SonataEasyExtendsBundle.
 *
 * @link https://sonata-project.org/easy-extends
 *
 * References:
 * @link http://symfony.com/doc/current/book/bundles.html
 */
class ApplicationSonataUserBundle extends Bundle
{
    /**
     * {@inheritdoc}
     */
    public function getParent()
    {
        return 'SonataUserBundle';
    }
}

bundles.php 也是:

return [
    App\Application\Sonata\UserBundle\ApplicationSonataUserBundle::class => ['all' => true],
];