reflector = $reflector; $this->session = $session; } /** * @param Controller $controller * @param string $methodName */ public function beforeController($controller, $methodName) { /** * Annotation deprecated with Nextcloud 26 */ $hasAnnotation = $this->reflector->hasAnnotation('UseSession'); if ($hasAnnotation) { $this->session->reopen(); return; } $reflectionMethod = new ReflectionMethod($controller, $methodName); $hasAttribute = !empty($reflectionMethod->getAttributes(UseSession::class)); if ($hasAttribute) { $this->session->reopen(); } } /** * @param Controller $controller * @param string $methodName * @param Response $response * @return Response */ public function afterController($controller, $methodName, Response $response) { /** * Annotation deprecated with Nextcloud 26 */ $hasAnnotation = $this->reflector->hasAnnotation('UseSession'); if ($hasAnnotation) { $this->session->close(); return $response; } $reflectionMethod = new ReflectionMethod($controller, $methodName); $hasAttribute = !empty($reflectionMethod->getAttributes(UseSession::class)); if ($hasAttribute) { $this->session->close(); } return $response; } }