我是Symfony2的新手,我遵循了Symfony2网站上的指南,使用Composer(也是我安装Symfony2)
安装MongoDB学说捆绑包。http://symfony.com/doc/master/bundles/doctrinemongodbbundle/index.html
我将行添加到app/autoload.php:
use DoctrineODMMongoDBMappingDriverAnnotationDriver;
AnnotationDriver::registerAnnotationClasses();
和app/appkernal.php
new DoctrineBundleMongoDBBundleDoctrineMongoDBBundle(),
指南中建议的,但是当我尝试加载Symfony应用程序(这只是演示应用程序)时,我会收到以下错误:
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版本,并且看起来像是作曲家/蒙古德b位,上面使用注释。
当我进行Google搜索时,我找不到任何明显的东西,并认为如果我的PHP版本确实是一个问题,这将更加普遍。
我可以告诉我需要的是:
- 将php从源到升级到5.3.8 汇编
- install symfony2不使用作曲家,因为它看起来像安装mongodB捆绑包的旧方法不使用注释
- 我完全错过了一些东西,因为我不知道Symfony2是如何工作的:D
有人有任何建议或其他解决方案会更容易吗?如果可以的话,我真的很想坚持作曲家。
我对PHP版本不了解(那里可能有问题,但是您发现的错误并没有明确说明),但是您的问题是丢失的配置在您的config.yml。
即使您现在不使用该服务,也必须添加它。它甚至不必是有效的信息,只需存在。
将以下内容添加到您的config.yml(从此处复制):
# app/config/config.yml
doctrine_mongodb:
connections:
default:
server: mongodb://localhost:27017
options: {}
default_database: test_database
document_managers:
default:
auto_mapping: true
Symfony与通过作曲家安装的Doctrinemongodbundle很好地搭配。使用作曲家安装依赖项,这是最佳实践。
您必须将PHP更新为5.4。