From b3f4a11a81b520b8dcc2bcebeeafea2cc0338a70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Sat, 3 Sep 2016 14:02:50 +0200 Subject: [PATCH] Store cache lifetime in config --- app/config/config.yml | 1 + app/config/config_dev.yml | 8 ++++++++ .../CoreBundle/DependencyInjection/Configuration.php | 3 +++ .../DependencyInjection/WallabagCoreExtension.php | 1 + .../CoreBundle/Repository/EntryRepository.php | 11 +++++++++-- src/Wallabag/CoreBundle/Resources/config/services.yml | 2 ++ 6 files changed, 24 insertions(+), 2 deletions(-) diff --git a/app/config/config.yml b/app/config/config.yml index 807543930..eb53fc5d4 100644 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -49,6 +49,7 @@ wallabag_core: language: en rss_limit: 50 reading_speed: 1 + cache_lifetime: 10 wallabag_import: allow_mimetypes: ['application/octet-stream', 'application/json', 'text/plain'] diff --git a/app/config/config_dev.yml b/app/config/config_dev.yml index 77840682d..3b67d8f69 100644 --- a/app/config/config_dev.yml +++ b/app/config/config_dev.yml @@ -40,3 +40,11 @@ swiftmailer: transport: smtp host: 'localhost' port: 1025 + +# If you want to use cache for queries used in WallabagExtension +# Uncomment the following lines +#doctrine: +# orm: +# metadata_cache_driver: apcu +# result_cache_driver: apcu +# query_cache_driver: apcu diff --git a/src/Wallabag/CoreBundle/DependencyInjection/Configuration.php b/src/Wallabag/CoreBundle/DependencyInjection/Configuration.php index d1bb9820b..d8141eea9 100644 --- a/src/Wallabag/CoreBundle/DependencyInjection/Configuration.php +++ b/src/Wallabag/CoreBundle/DependencyInjection/Configuration.php @@ -36,6 +36,9 @@ class Configuration implements ConfigurationInterface ->end() ->scalarNode('paypal_url') ->end() + ->integerNode('cache_lifetime') + ->defaultValue(10) + ->end() ->end() ; diff --git a/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php b/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php index 7d08b73b7..0cbde908d 100644 --- a/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php +++ b/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php @@ -22,6 +22,7 @@ class WallabagCoreExtension extends Extension $container->setParameter('wallabag_core.reading_speed', $config['reading_speed']); $container->setParameter('wallabag_core.version', $config['version']); $container->setParameter('wallabag_core.paypal_url', $config['paypal_url']); + $container->setParameter('wallabag_core.cache_lifetime', $config['cache_lifetime']); $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loader->load('services.yml'); diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php index 86bce545e..4b205f6e5 100644 --- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php +++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php @@ -10,6 +10,8 @@ use Wallabag\CoreBundle\Entity\Tag; class EntryRepository extends EntityRepository { + private $lifeTime; + /** * Return a query builder to used by other getBuilderFor* method. * @@ -281,8 +283,13 @@ class EntryRepository extends EntityRepository return $qb->getQuery()->getSingleScalarResult(); } + public function setLifeTime($lifeTime) + { + $this->lifeTime = $lifeTime; + } + /** - * Enable cache for a query + * Enable cache for a query. * * @param Query $query * @@ -292,7 +299,7 @@ class EntryRepository extends EntityRepository { $query->useQueryCache(true); $query->useResultCache(true); - $query->setResultCacheLifetime(5); + $query->setResultCacheLifetime($this->lifeTime); return $query; } diff --git a/src/Wallabag/CoreBundle/Resources/config/services.yml b/src/Wallabag/CoreBundle/Resources/config/services.yml index f8835198c..b70d9b8cb 100644 --- a/src/Wallabag/CoreBundle/Resources/config/services.yml +++ b/src/Wallabag/CoreBundle/Resources/config/services.yml @@ -81,6 +81,8 @@ services: factory: [ "@doctrine.orm.default_entity_manager", getRepository ] arguments: - WallabagCoreBundle:Entry + calls: + - [ setLifeTime, [ "%wallabag_core.cache_lifetime%" ] ] wallabag_core.tag_repository: class: Wallabag\CoreBundle\Repository\TagRepository