2

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 に強制的にキャッシュからメタデータを読み込ませる方法に関するアイデア。

ありがとう。

マルコ

4

0 に答える 0