试图从命名空间“twig\extra\twigextrabundle”加载类“twigextrabundle”

n8ghc7c1  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(321)

我的symfony项目中有以下内容 composer.json 文件:

  1. ...
  2. "twig/extra-bundle": "^3.3",
  3. ...

... 在我的 bundles.php 文件:

  1. ...
  2. Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true],
  3. ...

... 当我跑的时候 composer install ,一切似乎都安装正确。
但是,无论何时加载页面,都会出现以下错误:
classnotfoundexception试图从命名空间“twig\extra\twigextrabundle”加载类“twigextrabundle”。您是否忘记了另一个名称空间的“use”语句?在kernel.php第23行kernel->registerbundles()在kernel.php第446行kernel->initializebundles()在kernel.php第133行kernel->boot()在kernel.php第196行kernel->handle(object(siterequest))在index.php第32行
我错过了哪一步?

编辑:到目前为止,我发现了以下内容:
跑步时 composer require twig/extra-bundle , composer 说没有什么可以改变的 composer.lock .
如果我移除 vendor 文件夹,然后做一个 composer install ,正确的类似乎出现在供应商文件夹中,尽管symfony页面仍然找不到它们。
实际上,我甚至可以在phpstorm中使用ctrl-b跳转到vendor文件夹中的类。

ivqmmu1c

ivqmmu1c1#

在您正在使用的代码中 TwigExtraBundle (您没有显示),您可能会意外地出现以下情况

  1. use Twig\Extra\TwigExtraBundle;
  2. ...
  3. $foo = new TwigExtraBundle\TwigExtraBundle();

注意重复。如果我故意这样在我的类中放置代码,我会产生您看到的错误。

  1. Attempted to load class TwigExtraBundle from namespace Twig\Extra\TwigExtraBundle

显然,解决方案是消除重复:

  1. $foo = new TwigExtraBundle();

相关问题