ZF2 と Doctrine の ODM モジュールを使用しています。
問題:
リクエストごとに、プロキシとハイドレーターが再生成されます。これにより、ランダム エラーが発生します。詳細については、 https://github.com/doctrine/mongodb-odm/issues/484を参照してください。
MetadataCaching に関する Doctrine のドキュメントの後http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/metadata-drivers.html
ApcCache をデフォルトのメタデータ キャッシュの実装として明確に設定しました。
ドキュメントマネージャーをデバッグすると、次のようになります。
[mongoCmd] => $
[retryConnect] => 0
[retryQuery] => 0
[autoGenerateProxyClasses] => 0
[proxyDir] => data/DoctrineMongoODMModule/Proxy
[proxyNamespace] => DoctrineMongoODMModule\Proxy
[autoGenerateHydratorClasses] => 0
[hydratorDir] => data/DoctrineMongoODMModule/Hydrator
[hydratorNamespace] => DoctrineMongoODMModule\Hydrator
[defaultDB] =>
[metadataCacheImpl] => Doctrine\Common\Cache\ApcCache Object
したがって、自動生成プロキシと自動生成ハイドレーターの両方がオフになり、ApcCache オブジェクトは明らかに metadataCacheImplementation として設定されますが、キャッシュされたクラスからメタデータを読み取る代わりに、Doctrine は後続の各リクエストでクラスを再生成します。
リクエストごとに新しいクラスを作成するのではなく、Doctrine に強制的にキャッシュからメタデータを読み込ませる方法に関するアイデア。
ありがとう。
マルコ