我正在努力让自己的网站生效,但仍然遇到同样的错误......我已经尝试到处寻找并使用每个解决方案而没有运气。
错误
ClassNotFoundException:尝试从/home/dcms/public/html/dcms/apha/app/AppKernel.php第19行中的命名空间“Destination \ AppBundle”加载类“DestinationAppBundle”。您是否需要从“使用”它另一个命名空间?
AppKernel.php
public function registerBundles()
{
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new Destination\AppBundle\DestinationAppBundle(),
new Destination\Auth\HashInterfaceBundle\DestinationHashInterfaceBundle(),
);
文件结构
src
Destination
AppBundle
有什么想法吗?
答案 0 :(得分:4)
首先:检查文件src\Destination\AppBundle\DestinationAppBundle.php
是否存在
第二次:打开DestinationAppBundle.php
,如果名称空间为Destination\AppBundle
第三:检查classname声明是否与文件名相同(在您的情况下:DestinationAppBundle
)
答案 1 :(得分:2)
像这样更新composer.json:
"psr-4": {
"AppBundle\\": "src/AppBundle",
"UserBundle\\": "src/UserBundle"
},
编辑composer.json之后,你必须运行composer dump-autoload
答案 2 :(得分:0)
在AppKernel.php中验证此类DestinationAppBundle的使用
类DestinationAppBundle中的命名空间
答案 3 :(得分:0)
DestinationAppBundle.php中的命名空间是什么?
应该是:
<?php
namespace Destination\AppBundle;
答案 4 :(得分:0)
如果您确定命名空间和服务定义是正确的,您可以尝试:
升级Symfony版本。我对Symfony 2.8.11有一个奇怪的问题,添加的新服务给了我一个ClassNotFoundException。升级到2.8.17解决了它。
尝试删除app / cache / * contents
检查您是否使用预先生成的boostrap缓存文件,而不使用“--no-dev”选项(composer dump-autoload --optimize --no-dev --classmap-authoritative)和启动命令试。
答案 5 :(得分:0)
Symfony使用PSR自动加载。
您需要在composer.json文件中配置自动加载:
"autoload": {
"psr-4": {
"": "src/"
},
这将包括\ src文件夹下的所有文件和文件夹