Issue #2273385 by damiankloip: Use a container parameter for the user tempstore expire time.
parent
4f8cf7086f
commit
f0d8d3f8ac
|
@ -65,11 +65,8 @@ class TempStore {
|
||||||
* By default, data is stored for one week (604800 seconds) before expiring.
|
* By default, data is stored for one week (604800 seconds) before expiring.
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*
|
|
||||||
* @todo Currently, this property is not exposed anywhere, and so the only
|
|
||||||
* way to override it is by extending the class.
|
|
||||||
*/
|
*/
|
||||||
protected $expire = 604800;
|
protected $expire;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a new object for accessing data from a key/value store.
|
* Constructs a new object for accessing data from a key/value store.
|
||||||
|
@ -82,11 +79,14 @@ class TempStore {
|
||||||
* The lock object used for this data.
|
* The lock object used for this data.
|
||||||
* @param mixed $owner
|
* @param mixed $owner
|
||||||
* The owner key to store along with the data (e.g. a user or session ID).
|
* The owner key to store along with the data (e.g. a user or session ID).
|
||||||
|
* @param int $expire
|
||||||
|
* The time to live for items, in seconds.
|
||||||
*/
|
*/
|
||||||
public function __construct(KeyValueStoreExpirableInterface $storage, LockBackendInterface $lockBackend, $owner) {
|
public function __construct(KeyValueStoreExpirableInterface $storage, LockBackendInterface $lockBackend, $owner, $expire = 604800) {
|
||||||
$this->storage = $storage;
|
$this->storage = $storage;
|
||||||
$this->lockBackend = $lockBackend;
|
$this->lockBackend = $lockBackend;
|
||||||
$this->owner = $owner;
|
$this->owner = $owner;
|
||||||
|
$this->expire = $expire;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -38,6 +38,13 @@ class TempStoreFactory {
|
||||||
*/
|
*/
|
||||||
protected $lockBackend;
|
protected $lockBackend;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The time to live for items in seconds.
|
||||||
|
*
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
protected $expire;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a Drupal\user\TempStoreFactory object.
|
* Constructs a Drupal\user\TempStoreFactory object.
|
||||||
*
|
*
|
||||||
|
@ -47,11 +54,14 @@ class TempStoreFactory {
|
||||||
* The connection object used for this data.
|
* The connection object used for this data.
|
||||||
* @param \Drupal\Core\Lock\LockBackendInterface $lockBackend
|
* @param \Drupal\Core\Lock\LockBackendInterface $lockBackend
|
||||||
* The lock object used for this data.
|
* The lock object used for this data.
|
||||||
|
* @param int $expire
|
||||||
|
* The time to live for items, in seconds.
|
||||||
*/
|
*/
|
||||||
function __construct(SerializationInterface $serializer, Connection $connection, LockBackendInterface $lockBackend) {
|
function __construct(SerializationInterface $serializer, Connection $connection, LockBackendInterface $lockBackend, $expire = 604800) {
|
||||||
$this->serializer = $serializer;
|
$this->serializer = $serializer;
|
||||||
$this->connection = $connection;
|
$this->connection = $connection;
|
||||||
$this->lockBackend = $lockBackend;
|
$this->lockBackend = $lockBackend;
|
||||||
|
$this->expire = $expire;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -77,7 +87,7 @@ class TempStoreFactory {
|
||||||
|
|
||||||
// Store the data for this collection in the database.
|
// Store the data for this collection in the database.
|
||||||
$storage = new DatabaseStorageExpirable($collection, $this->serializer, $this->connection);
|
$storage = new DatabaseStorageExpirable($collection, $this->serializer, $this->connection);
|
||||||
return new TempStore($storage, $this->lockBackend, $owner);
|
return new TempStore($storage, $this->lockBackend, $owner, $this->expire);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,7 +82,7 @@ class TempStoreTest extends UnitTestCase {
|
||||||
$this->keyValue = $this->getMock('Drupal\Core\KeyValueStore\KeyValueStoreExpirableInterface');
|
$this->keyValue = $this->getMock('Drupal\Core\KeyValueStore\KeyValueStoreExpirableInterface');
|
||||||
$this->lock = $this->getMock('Drupal\Core\Lock\LockBackendInterface');
|
$this->lock = $this->getMock('Drupal\Core\Lock\LockBackendInterface');
|
||||||
|
|
||||||
$this->tempStore = new TempStore($this->keyValue, $this->lock, $this->owner);
|
$this->tempStore = new TempStore($this->keyValue, $this->lock, $this->owner, 604800);
|
||||||
|
|
||||||
$this->ownObject = (object) array(
|
$this->ownObject = (object) array(
|
||||||
'data' => 'test_data',
|
'data' => 'test_data',
|
||||||
|
|
|
@ -54,4 +54,7 @@ services:
|
||||||
arguments: ['@entity.manager', '@password']
|
arguments: ['@entity.manager', '@password']
|
||||||
user.tempstore:
|
user.tempstore:
|
||||||
class: Drupal\user\TempStoreFactory
|
class: Drupal\user\TempStoreFactory
|
||||||
arguments: ['@serialization.phpserialize', '@database', '@lock']
|
arguments: ['@serialization.phpserialize', '@database', '@lock', '%user.tempstore.expire%']
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
user.tempstore.expire: 604800
|
||||||
|
|
Loading…
Reference in New Issue