Mercurial > hg > isophonics-drupal-site
comparison core/modules/user/src/PrivateTempStoreFactory.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\user; | |
4 | |
5 use Drupal\Core\KeyValueStore\KeyValueExpirableFactoryInterface; | |
6 use Drupal\Core\Lock\LockBackendInterface; | |
7 use Drupal\Core\Session\AccountProxyInterface; | |
8 use Symfony\Component\HttpFoundation\RequestStack; | |
9 | |
10 /** | |
11 * Creates a PrivateTempStore object for a given collection. | |
12 */ | |
13 class PrivateTempStoreFactory { | |
14 | |
15 /** | |
16 * The storage factory creating the backend to store the data. | |
17 * | |
18 * @var \Drupal\Core\KeyValueStore\KeyValueExpirableFactoryInterface | |
19 */ | |
20 protected $storageFactory; | |
21 | |
22 /** | |
23 * The lock object used for this data. | |
24 * | |
25 * @var \Drupal\Core\Lock\LockBackendInterface | |
26 */ | |
27 protected $lockBackend; | |
28 | |
29 /** | |
30 * The current user. | |
31 * | |
32 * @var \Drupal\Core\Session\AccountProxyInterface | |
33 */ | |
34 protected $currentUser; | |
35 | |
36 /** | |
37 * The request stack. | |
38 * | |
39 * @var \Symfony\Component\HttpFoundation\RequestStack | |
40 */ | |
41 protected $requestStack; | |
42 | |
43 /** | |
44 * The time to live for items in seconds. | |
45 * | |
46 * @var int | |
47 */ | |
48 protected $expire; | |
49 | |
50 /** | |
51 * Constructs a Drupal\user\PrivateTempStoreFactory object. | |
52 * | |
53 * @param \Drupal\Core\KeyValueStore\KeyValueExpirableFactoryInterface $storage_factory | |
54 * The key/value store factory. | |
55 * @param \Drupal\Core\Lock\LockBackendInterface $lock_backend | |
56 * The lock object used for this data. | |
57 * @param \Drupal\Core\Session\AccountProxyInterface $current_user | |
58 * The current account. | |
59 * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack | |
60 * The request stack. | |
61 * @param int $expire | |
62 * The time to live for items, in seconds. | |
63 */ | |
64 public function __construct(KeyValueExpirableFactoryInterface $storage_factory, LockBackendInterface $lock_backend, AccountProxyInterface $current_user, RequestStack $request_stack, $expire = 604800) { | |
65 $this->storageFactory = $storage_factory; | |
66 $this->lockBackend = $lock_backend; | |
67 $this->currentUser = $current_user; | |
68 $this->requestStack = $request_stack; | |
69 $this->expire = $expire; | |
70 } | |
71 | |
72 /** | |
73 * Creates a PrivateTempStore. | |
74 * | |
75 * @param string $collection | |
76 * The collection name to use for this key/value store. This is typically | |
77 * a shared namespace or module name, e.g. 'views', 'entity', etc. | |
78 * | |
79 * @return \Drupal\user\PrivateTempStore | |
80 * An instance of the key/value store. | |
81 */ | |
82 public function get($collection) { | |
83 // Store the data for this collection in the database. | |
84 $storage = $this->storageFactory->get("user.private_tempstore.$collection"); | |
85 return new PrivateTempStore($storage, $this->lockBackend, $this->currentUser, $this->requestStack, $this->expire); | |
86 } | |
87 | |
88 } |