4

既存の Symfony 2.0 プロジェクトをインストールしようとしたので、rm -rf vendor と bin/vendor install を実行しました。彼は DoctrineFixturesBundle を見つけることができないので、deps ファイルを更新して以下を置きます:

[DoctrineFixturesBundle]
    git=https://github.com/doctrine/DoctrineFixturesBundle.git
    target=/bundles/Symfony/Bundle/DoctrineFixturesBundle
    version=origin/2.0

rm -rf vendor/* および bin/vendor install を再度実行すると、次のエラーが発生します。

オートローダーは、クラス "Symfony\Bundle\DoctrineFixturesBundle\DoctrineFixturesBundle" がファイル "/home/me/developpement/myproject/app/../vendor/bundles/Symfony/Bundle/DoctrineFixturesBundle/DoctrineFixturesBundle.php" で定義されることを予期していました。ファイルは見つかりましたが、その中にクラスがありませんでした。クラス名または名前空間にタイプミスがある可能性があります。

だから、私の AppKernel.php で私は置き換えます:

new Symfony\Bundle\DoctrineFixturesBundle\DoctrineFixturesBundle(),

と :

new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),

DoctrineFixturesBundle.php ファイルの名前空間は Doctrine\Bundle\FixturesBundle であるためです。

そして今、私はこのエラーを受け取ります:

致命的なエラー: クラス 'Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle' が /home/me/developpement/myproject/app/AppKernel.php の 21 行目に見つかりません

それを機能させるにはどうすればよいですか?

追加するために編集

これは私の autoload.php です:

$loader->registerNamespaces(array(
    'Symfony'          => array(__DIR__.'/../vendor/symfony/src', __DIR__.'/../vendor/bundles'),
    'Sensio'           => __DIR__.'/../vendor/bundles',
    'JMS'              => __DIR__.'/../vendor/bundles',
    'Doctrine\\Common' => __DIR__.'/../vendor/doctrine-common/lib',
    'Doctrine\\DBAL'   => __DIR__.'/../vendor/doctrine-dbal/lib',
    'Doctrine'         => __DIR__.'/../vendor/doctrine/lib',
    'Monolog'          => __DIR__.'/../vendor/monolog/src',
    'Assetic'          => __DIR__.'/../vendor/assetic/src',
    'Metadata'         => __DIR__.'/../vendor/metadata/src',
    'Gedmo'            => __DIR__.'/../vendor/gedmo-doctrine-extensions/lib',
    'Doctrine\\Common\\DataFixtures' => __DIR__.'/../vendor/doctrine-fixtures/lib',
    'Doctrine\\Common' => __DIR__.'/../vendor/doctrine-common/lib',
    'Doctrine\\DBAL\\Migrations' => __DIR__.'/../vendor/doctrine-migrations/lib',
    'Doctrine\\DBAL'   => __DIR__.'/../vendor/doctrine-dbal/lib',
    'Knp\Component'    => __DIR__.'/../vendor/knp-components/src',
    'Knp\Bundle'       => __DIR__.'/../vendor/bundles',
 ));
4

2 に答える 2

2

autoload.php を確認しましたか? これは、特定のディレクトリにある名前空間を Symfony に伝える場所です。

于 2012-08-28T15:26:39.680 に答える
0

名前空間はおそらく自動ロードされていません。このvendor\composer\autoload_namespaces.phpファイルを調べて、次のコードが含まれていることを確認してください。

'Doctrine\\Bundle\\FixturesBundle' => array($vendorDir . '/doctrine/doctrine-fixtures-bundle')

于 2014-02-06T09:36:44.573 に答える