【问题标题】:ClassNotFoundException SymfonyClassNotFoundException Symfony
【发布时间】:2014-03-13 16:35:45
【问题描述】:

我正在尝试使我的网站上线,但一直出现相同的错误...我尝试到处寻找并使用每个人的解决方案,但没有运气。

错误

ClassNotFoundException: Attempted to load class "DestinationAppBundle" from namespace "Destination\AppBundle" in /home/dcms/public/html/dcms/apha/app/AppKernel.php line 19. 你需要从另一个命名空间?

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

有什么想法吗?

【问题讨论】:

  • 您在使用 APC 吗?尝试冲洗它。
  • 你会如何在 php 中做到这一点?
  • 确保您在直播主机中有DestinationAppBundle.php。如果它在本地工作,这意味着您的项目未正确上传,请使用 rsync 确保一切都同步(如果您可以使用 rsync)。
  • 已经尝试重新上传整个网站两次
  • 使用phpinfo(); 上传脚本以查看是否安装了 APC。如果是,您可以尝试调用apc_clear_cache() 刷新它。

标签: php symfony


【解决方案1】:

首先:检查文件src\Destination\AppBundle\DestinationAppBundle.php是否存在

第二个:打开DestinationAppBundle.php并检查命名空间是否为Destination\AppBundle

第三个:检查类名声明是否与文件名相同(在您的情况下:DestinationAppBundle

【讨论】:

    【解决方案2】:

    像这样更新 composer.json:

    "psr-4": {
        "AppBundle\\": "src/AppBundle",
        "UserBundle\\": "src/UserBundle"
    },
    

    编辑 composer.json 后,您必须运行 composer dump-autoload

    【讨论】:

      【解决方案3】:

      在AppKernel.php中验证DestinationAppBundle这个类的使用

      以及DestinationAppBundle类中的命名空间

      【讨论】:

        【解决方案4】:

        DestinationAppBundle.php 中的命名空间是什么?

        应该是:

        <?php
        namespace Destination\AppBundle;
        

        【讨论】:

          【解决方案5】:

          如果您确定命名空间和服务定义正确,您可以尝试:

          • 升级 Symfony 版本。 Symfony 2.8.11 有一个奇怪的问题,添加的新服务给了我一个 ClassNotFoundException。升级到 2.8.17 解决了。

          • 尝试删除 app/cache/* 内容

          • 检查您是否使用了预生成的 boostrap 缓存文件,没有“--no-dev”选项(composer dump-autoload --optimize --no-dev --classmap-authoritative)和启动命令再次。

          【讨论】:

            【解决方案6】:

            Symfony 使用 PSR 自动加载。

            需要在composer.json文件中配置自动加载:

            "autoload": {
                "psr-4": {
                    "": "src/"
                },
            

            这将包括 \src 文件夹下的所有文件和文件夹

            【讨论】:

              猜你喜欢
              • 2016-07-29
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-08-04
              • 2018-01-25
              • 2020-08-01
              • 2015-04-20
              • 1970-01-01
              相关资源
              最近更新 更多