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

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

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

...
"twig/extra-bundle": "^3.3",
...

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

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

... 当我跑的时候 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 (您没有显示),您可能会意外地出现以下情况

use Twig\Extra\TwigExtraBundle;

...

$foo = new TwigExtraBundle\TwigExtraBundle();

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

Attempted to load class “TwigExtraBundle” from namespace “Twig\Extra\TwigExtraBundle”

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

$foo = new TwigExtraBundle();

相关问题