Advertisement
Guest User

Untitled

a guest
Feb 2nd, 2016
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. # Doctrine Configuration
  2. doctrine:
  3. dbal:
  4. driver: pdo_mysql
  5. host: "%database_host%"
  6. port: "%database_port%"
  7. dbname: "%database_name%"
  8. user: "%database_user%"
  9. password: "%database_password%"
  10. charset: UTF8
  11.  
  12. orm:
  13. auto_generate_proxy_classes: "%kernel.debug%"
  14. naming_strategy: doctrine.orm.naming_strategy.underscore
  15. auto_mapping: true
  16.  
  17. # enable metadata caching
  18. metadata_cache_driver: redis
  19. # enable query caching
  20. query_cache_driver: redis
  21.  
  22. snc_redis:
  23. # configure predis as client
  24. clients:
  25. default:
  26. type: predis
  27. alias: default
  28. dsn: redis://localhost
  29. doctrine:
  30. type: predis
  31. alias: doctrine
  32. dsn: redis://localhost
  33. # configure doctrine caching
  34. doctrine:
  35. metadata_cache:
  36. client: doctrine
  37. entity_manager: default
  38. document_manager: default
  39. result_cache:
  40. client: doctrine
  41. entity_manager: [default]
  42. query_cache:
  43. client: doctrine
  44. entity_manager: default
  45.  
  46. <?php
  47.  
  48. namespace BooksApiBookBundleRepositories;
  49.  
  50. use DoctrineORMEntityManager;
  51. use DoctrineORMQueryQueryException;
  52.  
  53. use SncRedisBundleDoctrineCacheRedisCache;
  54. use PredisClient;
  55.  
  56. class FetchBookRepository
  57. {
  58. /**
  59. * @var EntityManager
  60. */
  61. public $em;
  62.  
  63. /**
  64. * @param EntityManager $entityManager
  65. */
  66. public function __construct(
  67. EntityManager $entityManager
  68. ){
  69. $this->em = $entityManager;
  70. }
  71.  
  72. /**
  73. * @param $id
  74. * @return null|object
  75. * @throws QueryException
  76. */
  77. public function fetchBook($id)
  78. {
  79.  
  80. $predis = new RedisCache();
  81. $predis->setRedis(new Client);
  82. $cacheId = 'FetchBook' . '-' . $id;
  83. $cacheLifetime = 3600;
  84.  
  85. $book = $this->em->getRepository('BooksApiBookBundle:BooksEntity')
  86. ->createQueryBuilder('book')
  87. ->where('book.id = :id')
  88. ->setParameter('id', $id)
  89. ->getQuery()
  90. ->setResultCacheDriver($predis)
  91. ->setResultCacheLifetime($cacheLifetime)
  92. ->setResultCacheId($cacheId);
  93. $result = $book->getSingleResult();
  94.  
  95. return $result;
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement