Many times, our business logic says that we need to perform a redirect from a certain page to another if various conditions match. For these, we can subscribe to the request event and simply change the response--essentially bypassing the normal process, which would have gone through all the layers of Drupal. However, before we see an example, let's talk about the Event Dispatcher for just a bit.
The central player in this system is the event_dispatcher service, which is an instance of the ContainerAwareEventDispatcher class. This service allows the dispatching of named events that take a payload in the form of an Event object, which wraps the data that needs to be passed around. Typically, the code responsible ...