Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
project
drupal
Commits
f0d8d3f8
Commit
f0d8d3f8
authored
Jul 10, 2014
by
alexpott
Browse files
Issue
#2273385
by damiankloip: Use a container parameter for the user tempstore expire time.
parent
4f8cf708
Changes
4
Hide whitespace changes
Inline
Side-by-side
core/modules/user/src/TempStore.php
View file @
f0d8d3f8
...
...
@@ -65,11 +65,8 @@ class TempStore {
* By default, data is stored for one week (604800 seconds) before expiring.
*
* @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.
...
...
@@ -82,11 +79,14 @@ class TempStore {
* The lock object used for this data.
* @param mixed $owner
* 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
->
lockBackend
=
$lockBackend
;
$this
->
owner
=
$owner
;
$this
->
expire
=
$expire
;
}
/**
...
...
core/modules/user/src/TempStoreFactory.php
View file @
f0d8d3f8
...
...
@@ -38,6 +38,13 @@ class TempStoreFactory {
*/
protected
$lockBackend
;
/**
* The time to live for items in seconds.
*
* @var int
*/
protected
$expire
;
/**
* Constructs a Drupal\user\TempStoreFactory object.
*
...
...
@@ -47,11 +54,14 @@ class TempStoreFactory {
* The connection object used for this data.
* @param \Drupal\Core\Lock\LockBackendInterface $lockBackend
* 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
->
connection
=
$connection
;
$this
->
lockBackend
=
$lockBackend
;
$this
->
expire
=
$expire
;
}
/**
...
...
@@ -77,7 +87,7 @@ function get($collection, $owner = NULL) {
// Store the data for this collection in the database.
$storage
=
new
DatabaseStorageExpirable
(
$collection
,
$this
->
serializer
,
$this
->
connection
);
return
new
TempStore
(
$storage
,
$this
->
lockBackend
,
$owner
);
return
new
TempStore
(
$storage
,
$this
->
lockBackend
,
$owner
,
$this
->
expire
);
}
}
core/modules/user/tests/src/TempStoreTest.php
View file @
f0d8d3f8
...
...
@@ -82,7 +82,7 @@ protected function setUp() {
$this
->
keyValue
=
$this
->
getMock
(
'Drupal\Core\KeyValueStore\KeyValueStoreExpirableInterface'
);
$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
(
'data'
=>
'test_data'
,
...
...
core/modules/user/user.services.yml
View file @
f0d8d3f8
...
...
@@ -54,4 +54,7 @@ services:
arguments
:
[
'
@entity.manager'
,
'
@password'
]
user.tempstore
:
class
:
Drupal\user\TempStoreFactory
arguments
:
[
'
@serialization.phpserialize'
,
'
@database'
,
'
@lock'
]
arguments
:
[
'
@serialization.phpserialize'
,
'
@database'
,
'
@lock'
,
'
%user.tempstore.expire%'
]
parameters
:
user.tempstore.expire
:
604800
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment