php - Symfony2 Doctrine Metadata Cache with Redis Issue -
i'm trying use redis driver caching doctrine metadata, query , results. follwing configuration.
auto_generate_proxy_classes: "%kernel.debug%" naming_strategy: doctrine.orm.naming_strategy.underscore auto_mapping: true result_cache_driver: type: redis host: %redis_host% instance_class: redis query_cache_driver: redis #metadata_cache_driver: redis
when remove comment line #metadata_cache_driver: redis, error running test have following error.
typeerror: argument 1 passed doctrine\orm\mapping\classmetadatafactory::wakeupreflection() must implement interface doctrine\common\persistence\mapping\classmetadata, string given, called in vendor/doctrine/common/lib/doctrine/common/persistence/mapping/abstractclassmetadatafactory.php on line 214
my functional test looks following:
public function testx() { //the data in prepared in setup.. $param1 = 'test-id'; $param2 = 'test-key'; $result = $this->em->getrepository('mybundle:test') ->findonebyxx($param1, $param2); $this->asserttrue($result instanceof test); }
and query looks following:
$qb->select('c') ->from('mybundle:test', 'c') ->where('c.id = :id') ->andwhere('c.key = :key') ->setparameter('id', $id) ->setparameter('key', $key); $query = $qb->getquery() ->useresultcache(true); return $query->getoneornullresult();
do need additional configuration redis? appreciated??
i believe resolve need set serializer redis, default serializer not aware of the php classes , when object removed cache, , unserialized, not same type prior serialization.
$redis->setoption(\redis::opt_serializer, \redis::serializer_php);
for case need set configuration option part of driver configuration.
Comments
Post a Comment