Middleware

class OCP\AppFramework\Middleware
Middleware is used to provide hooks before or after controller methods and
deal with possible exceptions raised in the controller methods.
They’re modeled after Django’s middleware system:
Source:lib/public/AppFramework/Middleware.php#43

Methods

public OCP\AppFramework\Middleware::beforeController($controller, $methodName)
This is being run in normal order before the controller is being
called which allows several modifications and checks
Source:

lib/public/AppFramework/Middleware.php#55

Parameters:
  • $controller (OCP\AppFramework\Controller) the controller that is being called
  • $methodName (string) the name of the method that will be called on

the controller

Since:

6.0.0

public OCP\AppFramework\Middleware::afterException($controller, $methodName, $exception)
This is being run when either the beforeController method or the
controller method itself is throwing an exception. The middleware is
asked in reverse order to handle the exception and to return a response.
If the response is null, it is assumed that the exception could not be
handled and the error will be thrown again
Source:

lib/public/AppFramework/Middleware.php#74

Parameters:
  • $controller (OCP\AppFramework\Controller) the controller that is being called
  • $methodName (string) the name of the method that will be called on

the controller * $exception (Exception) the thrown exception

Throws:

\Exception the passed in exception if it can’t handle it

Returns:

\OCP\AppFramework\Http\Response a Response object in case that the exception was handled

Since:

6.0.0

public OCP\AppFramework\Middleware::afterController($controller, $methodName, $response)
This is being run after a successful controllermethod call and allows
the manipulation of a Response object. The middleware is run in reverse order
Source:

lib/public/AppFramework/Middleware.php#90

Parameters:
  • $controller (OCP\AppFramework\Controller) the controller that is being called
  • $methodName (string) the name of the method that will be called on

the controller * $response (OCP\AppFramework\Http\Response) the generated response from the controller

Returns:

\OCP\AppFramework\Http\Response a Response object

Since:

6.0.0

public OCP\AppFramework\Middleware::beforeOutput($controller, $methodName, $output)
This is being run after the response object has been rendered and
allows the manipulation of the output. The middleware is run in reverse order
Source:

lib/public/AppFramework/Middleware.php#106

Parameters:
  • $controller (OCP\AppFramework\Controller) the controller that is being called
  • $methodName (string) the name of the method that will be called on

the controller * $output (string) the generated output from a response

Returns:

string the output that should be printed

Since:

6.0.0