我对 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 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 位使用注释。
当我进行谷歌搜索时,我找不到任何明显的东西,并假设如果我的 PHP 版本真的有问题,这会更常见。
据我所知,我需要:
- 从源代码编译 PHP 升级到 5.3.8
- 不使用 composer 安装 Symfony2,因为它看起来像安装 MongoDB 包的旧方法不使用注释
- 我完全错过了一些东西,因为我不知道 Symfony2 是如何工作的:D
有没有人有任何建议或其他更容易的解决方案?如果可以的话,我真的很想坚持作曲家。