ClassNotFoundException:尝试加载类" DoctrineFixturesBundle"

时间:2014-03-13 12:00:47

标签: symfony doctrine-orm

我的所有网址都有这个返回symfony错误:
" ClassNotFoundException:尝试加载类" DoctrineFixturesBundle"来自命名空间" Doctrine \ Bundle \ FixturesBundle"在C:\ dev \ Apache2.4.6 \ htdocs \ MySite \ app \ AppKernel.php第23行。你需要"使用"它来自另一个名称空间?"

当我修改config.yml(part doctrine orm)以解决其他问题但是它没有解决时,会出现此错误。确实是我在这个文件中的更改并重新运行我的网站,但现在没有正常运行。我随时随地都有这个错误。

我在这里复制我的代码,但是回答简单问题:
- 你是否在AppKernel.php 中添加了这一行:$ bundles [] = new Doctrine \ Bundle \ FixturesBundle \ DoctrineFixturesBundle(); ? 回复:是
- 你有安装夹具包吗? 响应:是
- 你有安装/更新和自我更新作曲家吗? 响应:是
- 你在DB中有加载夹具吗? 响应:是(运行完美)
- 你有清理缓存吗? 响应:是

我的所有灯具引擎在此生成错误之前正确运行。

AppKernel.php

        if (in_array($this->getEnvironment(), array('dev', 'test'))) {
        $bundles[] = new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle();
        $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
        $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
        $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
    }

composer.json

    "require": {
    "php": ">=5.3.3",
    "symfony/symfony": "~2.4",
    "doctrine/orm": "2.4.2",
    "doctrine/doctrine-bundle": "~1.2",
    "twig/extensions": "~1.0",
    "symfony/assetic-bundle": "~2.3",
    "symfony/swiftmailer-bundle": "~2.3",
    "symfony/monolog-bundle": "~2.4",
    "sensio/distribution-bundle": "~2.3",
    "sensio/framework-extra-bundle": "~3.0",
    "sensio/generator-bundle": "~2.3",
    "incenteev/composer-parameter-handler": "~2.0",
    "doctrine/doctrine-fixtures-bundle": "dev-master"
},

config.yml

doctrine:
dbal:
    driver:   "%database_driver%"
    host:     "%database_host%"
    port:     "%database_port%"
    dbname:   "%database_name%"
    user:     "%database_user%"
    password: "%database_password%"
    charset:  UTF8
    # if using pdo_sqlite as your database driver, add the path in parameters.yml
    # e.g. database_path: "%kernel.root_dir%/data/data.db3"
    # path:     "%database_path%"

orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    auto_mapping: true

感谢您的宝贵帮助

2 个答案:

答案 0 :(得分:2)

非常奇怪的行为,因为它是自动解决的。 经过大量缓存:清除,手动删除缓存,在AppKernel.php中注释/退出这个问题解决。

但是一个新的开始......

现在这是我的开发工具栏symfony,它不会运行。

我认为为这个新问题创建一个新主题,不要混淆这个问题。

答案 1 :(得分:1)

我在

上遇到了同样的错误
new Application\Extended\SonataMediaBundle\ExtendedSonataMediaBundle()

在我的情况下,我修复 composer.json 文件并运行 composer update 后又重新开始工作。为了正确,我第一次启动“composer update”没有composer.json修复并且错误没有消失,所以“composer update”本身不是解决方案,关键是 - 是composer.json文件修复。

这甚至更奇怪,因为它是错误的修复 - 我在psr-0自动加载定义中删除了斜杠,所以:

"autoload": {
    "psr-0": { "/": "src/" }
},
我得到了:

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

只有一个斜线! 这是错误的修复,因为作曲家建议不使用空命名空间

$ composer validate 
./composer.json is valid, but with a few warnings
See https://getcomposer.org/doc/04-schema.md for details on the schema
Defining autoload.psr-0 with an empty namespace prefix is a bad idea for performance

注1:它在前几天使用斜杠并且今天停止工作,非常奇怪。项目在两个工作状态之间没有受到影响!

注2:composer.json文件的初始(收件箱内)状态没有斜线,我在两周前添加它以抑制作曲家的不满。