私はSymfony2に非常に慣れていないので、Symfony2 Webサイトのガイドに従って、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に同梱されているPHPバージョン(5.3.5-1ubuntu7.11)を使用していますが、上記のcomposer/mongodbビットはアノテーションを使用しているようです。
私がグーグル検索をするとき、私は明白なものを何も見つけることができません、そしてそれが私のPHPバージョンで本当に問題であるならば、これがより一般的であると思いました。
私が言えることから、私は次のいずれかを行う必要があります。
- PHPをソースからコンパイルして5.3.8にアップグレードします
- MongoDBバンドルをインストールする古い方法はアノテーションを使用しないように見えるため、composerを使用せずにSymfony2をインストールします
- Symfony2がどのように機能するのかわからないので、私は何かを完全に見逃しました:D
誰かがもっと簡単な提案や他の解決策を持っていますか?できれば作曲家にこだわりたいです。