12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- namespace Drupal\Core\TempStore;
- use Drupal\Core\KeyValueStore\KeyValueExpirableFactoryInterface;
- use Drupal\Core\Lock\LockBackendInterface;
- use Drupal\Core\Session\AccountProxyInterface;
- use Symfony\Component\HttpFoundation\RequestStack;
- /**
- * Creates a PrivateTempStore object for a given collection.
- */
- class PrivateTempStoreFactory {
- /**
- * The storage factory creating the backend to store the data.
- *
- * @var \Drupal\Core\KeyValueStore\KeyValueExpirableFactoryInterface
- */
- protected $storageFactory;
- /**
- * The lock object used for this data.
- *
- * @var \Drupal\Core\Lock\LockBackendInterface
- */
- protected $lockBackend;
- /**
- * The current user.
- *
- * @var \Drupal\Core\Session\AccountProxyInterface
- */
- protected $currentUser;
- /**
- * The request stack.
- *
- * @var \Symfony\Component\HttpFoundation\RequestStack
- */
- protected $requestStack;
- /**
- * The time to live for items in seconds.
- *
- * @var int
- */
- protected $expire;
- /**
- * Constructs a Drupal\Core\TempStore\PrivateTempStoreFactory object.
- *
- * @param \Drupal\Core\KeyValueStore\KeyValueExpirableFactoryInterface $storage_factory
- * The key/value store factory.
- * @param \Drupal\Core\Lock\LockBackendInterface $lock_backend
- * The lock object used for this data.
- * @param \Drupal\Core\Session\AccountProxyInterface $current_user
- * The current account.
- * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack
- * The request stack.
- * @param int $expire
- * The time to live for items, in seconds.
- */
- public function __construct(KeyValueExpirableFactoryInterface $storage_factory, LockBackendInterface $lock_backend, AccountProxyInterface $current_user, RequestStack $request_stack, $expire = 604800) {
- $this->storageFactory = $storage_factory;
- $this->lockBackend = $lock_backend;
- $this->currentUser = $current_user;
- $this->requestStack = $request_stack;
- $this->expire = $expire;
- }
- /**
- * Creates a PrivateTempStore.
- *
- * @param string $collection
- * The collection name to use for this key/value store. This is typically
- * a shared namespace or module name, e.g. 'views', 'entity', etc.
- *
- * @return \Drupal\Core\TempStore\PrivateTempStore
- * An instance of the key/value store.
- */
- public function get($collection) {
- // Store the data for this collection in the database.
- $storage = $this->storageFactory->get("tempstore.private.$collection");
- return new PrivateTempStore($storage, $this->lockBackend, $this->currentUser, $this->requestStack, $this->expire);
- }
- }
|