function __construct(Application $app, Request $request, SessionHandler $handler = NULL, $priority = 20) { parent::__construct($request, $handler); $middlewareOptions = ['priority' => $priority, 'uri' => $request['REQUEST_URI'], 'method' => $request['REQUEST_METHOD']]; $self = $this; $app->after(function ($request, $response) use($self) { if ($self->shouldSetCookie()) { $self->close(); list($name, $value, $options) = $self->getCookieElements(); $response->setRawCookie($name, $value, $options); $cacheControlHeader = $self->generateCacheControlHeader(); $response->setHeader('Cache-Control', $cacheControlHeader); } }, $middlewareOptions); }
public function testCloseCallsInternalGarbageCollectionWithGarbageCollectionMaxLifeTime() { $garbageCollectionMaxLifeTime = 50; $requestMock = $this->getRequestMock(); $fileSessionHandlerMock = $this->getBlackHoleFileSessionHandler(); $fileSessionHandlerMock->expects($this->any())->method('gc')->with($this->equalTo($garbageCollectionMaxLifeTime))->will($this->returnValue(True)); $session = new Session($requestMock, $fileSessionHandlerMock); $session->set('Foo', 'Bar'); $session->setOption('gc_divisor', 1); // 100% chance of gc $session->setOption('gc_probability', 1); $session->setOption('gc_maxlifetime', 50); $session->open(); $session->close(); }