我是Symfony2的新手,我已经按照Symfony2网站上的指南使用composer安装了MongoDb Doctrine包(这也是我安装Symfony2的方法)
http://symfony.com/doc/master/bundles/DoctrineMongoDBBundle/index.html
我将这些行添加到app / autoload.php中:
use Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver;
AnnotationDriver::registerAnnotationClasses();
和app / AppKernal.php
new Doctrine\Bundle\MongoDBBundle\DoctrineMongoDBBundle(),
指南中提到的,但是当我尝试加载Symfony应用程序(这只是Demo应用程序)时,我收到以下错误:
InvalidArgumentException: The service definition "doctrine_mongodb.odm.document_manager" does not exist.
[还有更多的痕迹,让我知道这是否有用]
如果我注释掉我添加到app / AppKernal.php的行,那么Symfony Demo应用程序会加载而没有任何问题。
我已经运行了app / check.php,我注意到以下警告:
WARNING When using annotations you should have at least PHP 5.3.8 due to PHP bug #55156
Install PHP 5.3.8 or newer if your project uses annotations.
我目前正在使用Ubuntu(5.3.5-1ubuntu7.11)附带的PHP版本,看起来上面的composer / mongodb位使用Annotations。
当我进行谷歌搜索时,我找不到任何明显的东西,并认为如果我的PHP版本确实存在问题,这将更常见。
据我所知,我需要:
有没有人有任何建议或其他解决方案更容易?如果可以的话,我真的很想坚持作曲家。
答案 0 :(得分:9)
我不知道PHP版本(可能存在问题,但是你得到的错误没有明确说明它),但你的问题是config.yml中缺少的配置。
即使您现在不使用该服务,也必须添加此项。它甚至不必是有效的信息,它必须存在。
将以下内容添加到config.yml(从here复制):
# app/config/config.yml
doctrine_mongodb:
connections:
default:
server: mongodb://localhost:27017
options: {}
default_database: test_database
document_managers:
default:
auto_mapping: true
答案 1 :(得分:0)
Symfony适用于通过composer安装的DoctrineMongoDBBundle。使用composer安装依赖项是最佳实践。
你必须update你的php为5.4。