Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Doctrine Configuration
- doctrine:
- dbal:
- driver: pdo_mysql
- host: "%database_host%"
- port: "%database_port%"
- dbname: "%database_name%"
- user: "%database_user%"
- password: "%database_password%"
- charset: UTF8
- orm:
- auto_generate_proxy_classes: "%kernel.debug%"
- naming_strategy: doctrine.orm.naming_strategy.underscore
- auto_mapping: true
- # enable metadata caching
- metadata_cache_driver: redis
- # enable query caching
- query_cache_driver: redis
- snc_redis:
- # configure predis as client
- clients:
- default:
- type: predis
- alias: default
- dsn: redis://localhost
- doctrine:
- type: predis
- alias: doctrine
- dsn: redis://localhost
- # configure doctrine caching
- doctrine:
- metadata_cache:
- client: doctrine
- entity_manager: default
- document_manager: default
- result_cache:
- client: doctrine
- entity_manager: [default]
- query_cache:
- client: doctrine
- entity_manager: default
- <?php
- namespace BooksApiBookBundleRepositories;
- use DoctrineORMEntityManager;
- use DoctrineORMQueryQueryException;
- use SncRedisBundleDoctrineCacheRedisCache;
- use PredisClient;
- class FetchBookRepository
- {
- /**
- * @var EntityManager
- */
- public $em;
- /**
- * @param EntityManager $entityManager
- */
- public function __construct(
- EntityManager $entityManager
- ){
- $this->em = $entityManager;
- }
- /**
- * @param $id
- * @return null|object
- * @throws QueryException
- */
- public function fetchBook($id)
- {
- $predis = new RedisCache();
- $predis->setRedis(new Client);
- $cacheId = 'FetchBook' . '-' . $id;
- $cacheLifetime = 3600;
- $book = $this->em->getRepository('BooksApiBookBundle:BooksEntity')
- ->createQueryBuilder('book')
- ->where('book.id = :id')
- ->setParameter('id', $id)
- ->getQuery()
- ->setResultCacheDriver($predis)
- ->setResultCacheLifetime($cacheLifetime)
- ->setResultCacheId($cacheId);
- $result = $book->getSingleResult();
- return $result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement