From a9d248a273bbf59a43e0023f340e901dd5af7d42 Mon Sep 17 00:00:00 2001 From: Nathaniel Catchpole <catch@35733.no-reply.drupal.org> Date: Tue, 7 Jan 2014 11:34:41 +0000 Subject: [PATCH] Issue #2160495 by damiankloip: Add a KeyValueExpirableFactoryInterface. --- core/lib/Drupal/Core/Form/FormBuilder.php | 7 +++-- .../KeyValueDatabaseExpirableFactory.php | 22 +++++++++++++--- .../KeyValueExpirableFactory.php | 2 +- .../KeyValueExpirableFactoryInterface.php | 26 +++++++++++++++++++ .../KeyValueNullExpirableFactory.php | 2 +- 5 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 core/lib/Drupal/Core/KeyValueStore/KeyValueExpirableFactoryInterface.php diff --git a/core/lib/Drupal/Core/Form/FormBuilder.php b/core/lib/Drupal/Core/Form/FormBuilder.php index 355e560be7f5..5a2bed573ab1 100644 --- a/core/lib/Drupal/Core/Form/FormBuilder.php +++ b/core/lib/Drupal/Core/Form/FormBuilder.php @@ -14,8 +14,7 @@ use Drupal\Core\Access\CsrfTokenGenerator; use Drupal\Core\Extension\ModuleHandlerInterface; use Drupal\Core\HttpKernel; -use Drupal\Core\KeyValueStore\KeyValueExpirableFactory; -use Drupal\Core\KeyValueStore\KeyValueFactoryInterface; +use Drupal\Core\KeyValueStore\KeyValueExpirableFactoryInterface; use Drupal\Core\Render\Element; use Drupal\Core\Routing\UrlGeneratorInterface; use Drupal\Core\StringTranslation\TranslationInterface; @@ -124,7 +123,7 @@ class FormBuilder implements FormBuilderInterface { * * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler * The module handler. - * @param \Drupal\Core\KeyValueStore\KeyValueFactoryInterface $key_value_expirable_factory + * @param \Drupal\Core\KeyValueStore\KeyValueExpirableFactoryInterface $key_value_expirable_factory * The keyvalue expirable factory. * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher * The event dispatcher. @@ -137,7 +136,7 @@ class FormBuilder implements FormBuilderInterface { * @param \Drupal\Core\HttpKernel $http_kernel * The HTTP kernel. */ - public function __construct(ModuleHandlerInterface $module_handler, KeyValueFactoryInterface $key_value_expirable_factory, EventDispatcherInterface $event_dispatcher, UrlGeneratorInterface $url_generator, TranslationInterface $translation_manager, CsrfTokenGenerator $csrf_token = NULL, HttpKernel $http_kernel = NULL) { + public function __construct(ModuleHandlerInterface $module_handler, KeyValueExpirableFactoryInterface $key_value_expirable_factory, EventDispatcherInterface $event_dispatcher, UrlGeneratorInterface $url_generator, TranslationInterface $translation_manager, CsrfTokenGenerator $csrf_token = NULL, HttpKernel $http_kernel = NULL) { $this->moduleHandler = $module_handler; $this->keyValueExpirableFactory = $key_value_expirable_factory; $this->eventDispatcher = $event_dispatcher; diff --git a/core/lib/Drupal/Core/KeyValueStore/KeyValueDatabaseExpirableFactory.php b/core/lib/Drupal/Core/KeyValueStore/KeyValueDatabaseExpirableFactory.php index b70cd2bd58e9..077676ba5b88 100644 --- a/core/lib/Drupal/Core/KeyValueStore/KeyValueDatabaseExpirableFactory.php +++ b/core/lib/Drupal/Core/KeyValueStore/KeyValueDatabaseExpirableFactory.php @@ -9,13 +9,11 @@ use Drupal\Core\DestructableInterface; use Drupal\Core\Database\Connection; -use Drupal\Core\Database\Database; -use Drupal\Core\KeyValueStore\KeyValueDatabaseFactory; /** * Defines the key/value store factory for the database backend. */ -class KeyValueDatabaseExpirableFactory extends KeyValueDatabaseFactory implements DestructableInterface { +class KeyValueDatabaseExpirableFactory implements KeyValueExpirableFactoryInterface, DestructableInterface { /** * Holds references to each instantiation so they can be terminated. @@ -24,6 +22,24 @@ class KeyValueDatabaseExpirableFactory extends KeyValueDatabaseFactory implement */ protected $storages; + /** + * The database connection. + * + * @var \Drupal\Core\Database\Connection + */ + protected $connection; + + /** + * Constructs this factory object. + * + * + * @param \Drupal\Core\Database\Connection $connection + * The Connection object containing the key-value tables. + */ + function __construct(Connection $connection) { + $this->connection = $connection; + } + /** * {@inheritdoc} */ diff --git a/core/lib/Drupal/Core/KeyValueStore/KeyValueExpirableFactory.php b/core/lib/Drupal/Core/KeyValueStore/KeyValueExpirableFactory.php index 4a7ca29b468c..b1efbf023394 100644 --- a/core/lib/Drupal/Core/KeyValueStore/KeyValueExpirableFactory.php +++ b/core/lib/Drupal/Core/KeyValueStore/KeyValueExpirableFactory.php @@ -12,7 +12,7 @@ /** * Defines the key/value store factory. */ -class KeyValueExpirableFactory extends KeyValueFactory { +class KeyValueExpirableFactory extends KeyValueFactory implements KeyValueExpirableFactoryInterface { const DEFAULT_SERVICE = 'keyvalue.expirable.database'; diff --git a/core/lib/Drupal/Core/KeyValueStore/KeyValueExpirableFactoryInterface.php b/core/lib/Drupal/Core/KeyValueStore/KeyValueExpirableFactoryInterface.php new file mode 100644 index 000000000000..5bb6247f8a3a --- /dev/null +++ b/core/lib/Drupal/Core/KeyValueStore/KeyValueExpirableFactoryInterface.php @@ -0,0 +1,26 @@ +<?php + +/** + * @file + * Contains \Drupal\Core\KeyValueStore\KeyValueExpirableFactoryInterface. + */ + +namespace Drupal\Core\KeyValueStore; + +/** + * Defines the expirable key/value store factory interface. + */ +interface KeyValueExpirableFactoryInterface { + + /** + * Constructs a new expirable key/value store for a given collection name. + * + * @param string $collection + * The name of the collection holding key and value pairs. + * + * @return \Drupal\Core\KeyValueStore\KeyValueStoreExpirableInterface + * An expirable key/value store implementation for the given $collection. + */ + public function get($collection); + +} diff --git a/core/lib/Drupal/Core/KeyValueStore/KeyValueNullExpirableFactory.php b/core/lib/Drupal/Core/KeyValueStore/KeyValueNullExpirableFactory.php index 008dd45054c9..caaf9f4a1f8b 100644 --- a/core/lib/Drupal/Core/KeyValueStore/KeyValueNullExpirableFactory.php +++ b/core/lib/Drupal/Core/KeyValueStore/KeyValueNullExpirableFactory.php @@ -10,7 +10,7 @@ /** * Defines the key/value store factory for the null backend. */ -class KeyValueNullExpirableFactory implements KeyValueFactoryInterface { +class KeyValueNullExpirableFactory implements KeyValueExpirableFactoryInterface { /** * {@inheritdoc} -- GitLab