Commit 228f5722 authored by Franz Liedke's avatar Franz Liedke

Extract sweep method in Session payload class.

This allows for manually triggering garbage collection in session drivers.
parent bc34498a
...@@ -298,13 +298,29 @@ class Payload { ...@@ -298,13 +298,29 @@ class Payload {
$this->cookie($config); $this->cookie($config);
// Some session drivers implement the Sweeper interface meaning that // Some session drivers implement the Sweeper interface meaning that
// they must clean up expired sessions manually. If the driver is a // they must clean up expired sessions manually. Here we'll calculate
// sweeper, we'll calculate if we need to run garbage collection. // if we need to run garbage collection.
$sweepage = $config['sweepage']; $sweepage = $config['sweepage'];
if ($this->driver instanceof Sweeper and (mt_rand(1, $sweepage[1]) <= $sweepage[0])) if (mt_rand(1, $sweepage[1]) <= $sweepage[0])
{ {
$this->driver->sweep(time() - ($config['lifetime'] * 60)); $this->sweep();
}
}
/**
* Clean up expired sessions.
*
* If the session driver is a sweeper, it must clean up expired sessions
* from time to time. This method triggers garbage collection.
*
* @return void
*/
public function sweep()
{
if ($this->driver instanceof Sweeper)
{
$this->driver->sweep(time() - (Config::get('session.lifetime') * 60));
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment