无法声明一个正在使用的类

时间:2019-03-24 16:00:58

标签: php symfony-3.4

我尝试在我的项目上安装和配置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".

您是否忘记了另一个名称空间的“使用”语句?在C:\ wamp64 \ www \ staff-ma \ src \ Kernel.php:33

我的ApplicationSonataUserBundle类:

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/"
    }
},

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

1 个答案:

答案 0 :(得分:0)

解决问题。我刚刚将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],
];