Middleware is used in Tomahawk to make it easier to hook into the behaviour of services during a request.
Tomahawk includes middleware for Sessions, Cookies and String Responses.
You could create a middleware for checking if a user was logged in etc.
You add them in to the AppKernel, found in
Creating your own Middleware
First create a class that extends
Middleware requires a boot method. Once you've done that you should have something that looks like:
When the middleware is booted, you have access to the Service container through
Next you want to get the Event Dispatcher and listen on the Kernel Events. The following events are available:
KernelEvents::REQUEST- occurs at the very beginning of request dispatching.
KernelEvents::EXCEPTION- occurs when an uncaught exception appears.
KernelEvents::VIEW- event occurs when the return value of a controller is not a Response instance.
KernelEvents::CONTROLLER- occurs once a controller was found for handling a request.
KernelEvents::RESPONSE- occurs once a response was created for replying to a request.
KernelEvents::TERMINATE- occurs once a response was sent.
KernelEvents::FINISH_REQUEST- occurs when a response was generated for a request.
We'll use Tomahawk's
Tomahawk\HttpCore\Middleware\StringResponse as an example.
This middleware listens on the
KernelEvents::VIEW event and converts string
responses returned from the controller to a Symfony Response.