mongodb - 使用 composer 为 Symfony2 设置 MongoDb

标签 mongodb symfony annotations

我是 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 应用程序(这只是演示应用程序)时,我收到以下错误:

InvalidArgumentException: The service definition "doctrine_mongodb.odm.document_manager" does not exist.

[还有更多的痕迹,让我知道这是否有用]

如果我注释掉我添加到 app/AppKernal.php 中的行,那么 Symfony 演示应用程序加载没有问题。

我运行了 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 位使用了注释。

当我进行 Google 搜索时,我找不到任何明显的东西,并且假设如果我的 PHP 版本确实有问题,这会更常见。

据我所知,我需要:

  • 从源代码编译 PHP 以升级到 5.3.8
  • 不使用 composer 安装 Symfony2,因为它看起来像安装 MongoDB 包的旧方法不使用注释
  • 我完全错过了一些东西,因为我不知道 Symfony2 是如何工作的 :D

有没有人有任何建议或其他更容易的解决方案?如果可以的话,我真的很想坚持使用 Composer。

最佳答案

我不知道 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

关于mongodb - 使用 composer 为 Symfony2 设置 MongoDb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13077845/

相关文章:

mongodb - 向 mongodb 服务器批量插入(1000 个文档)在 GCP 中是 1 IOPS,还是 1000 iops?

java - SpringBoot 1.2.1 MongoRepository

mysql - 在 Doctrine 中配置索引文本长度 MySQL

java - 如何根据 SEAM 中另一个字段的值来根据需要验证一个字段?

java - 自定义表单验证注释不起作用

mongodb - 如何在 java/scala 中使用 inc 运算符创建 Decimal128 字段

java - 从soap web服务返回ObjectId

php - "X"参数不存在

twig - 为什么在 "dump"环境中使用 if 语句时,twig 模板会抛出未知的 'dev' 函数?

jakarta-ee - 约束和注释有什么区别?