ClassNotFoundException Symfony

时间:2014-03-13 16:35:46

标签: php symfony

我正在努力让自己的网站生效,但仍然遇到同样的错误......我已经尝试到处寻找并使用每个解决方案而没有运气。

错误

  

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

有什么想法吗?

6 个答案:

答案 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文件夹下的所有文件和文件夹