【发布时间】:2021-10-03 04:06:03
【问题描述】:
我的 Symfony 项目的 composer.json 文件中有以下内容:
...
"twig/extra-bundle": "^3.3",
...
...以及我的bundles.php 文件中的以下内容:
...
Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true],
...
...当我运行composer install 时,一切似乎都已正确安装。
然而,每当我加载页面时,我都会收到此错误:
ClassNotFoundException 试图从 命名空间“Twig\Extra\TwigExtraBundle”。你忘了一个“使用” 另一个命名空间的声明?在 Kernel.php 第 23 行 Kernel-> registerBundles() in Kernel.php line 446 at Kernel->initializeBundles()in Kernel.php line 133 at Kernel->boot()in Kernel.php 第 196 行位于 Kernel->handle(object(SiteRequest)) in index.php 第 32 行
我错过了什么步骤?
====
编辑:到目前为止,我发现了以下内容:
-
在运行
composer require twig/extra-bundle时,作曲家说composer.lock没有什么可更改的。 -
如果我删除
vendor文件夹并执行composer install,正确的类似乎出现在供应商文件夹中,尽管 Symfony 页面仍然找不到它们。 -
确实,我什至可以在 PHPStorm 中使用 ctrl-b 来跳转到 vendor 文件夹中的类。
【问题讨论】:
-
从你所拥有的出发,你尝试过
composer dump-autoload吗?也许由于某种原因需要重新扫描您的课程.. -
好建议,但没有运气。
composer dump-autoload没有成功。 -
您尝试过什么解决问题的方法?在将要求添加到 JSON 配置后,您是否运行了
composer require? -
@the_nuts:我确实尝试过。没有运气。 @Nico Haase:好问题。
composer.lock确实包含该要求,并且这些类存在于vendor文件夹中。我什至可以使用 ctrl-b 从 phpstorm 中的bundles.php文件跳转到它们。所以只有 Symfony 无法找到这些类。 -
请通过编辑将所有此类澄清添加到您的问题中
标签: php symfony composer-php