class RedirectEventSubscriber

Changes the response to a redirect, if a redirect rules action was executed .

Hierarchy

  • class \Drupal\rules\EventSubscriber\RedirectEventSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface

Expanded class hierarchy of RedirectEventSubscriber

1 string reference to 'RedirectEventSubscriber'
rules.services.yml in ./rules.services.yml
rules.services.yml
1 service uses RedirectEventSubscriber
rules.redirect_event_subscriber in ./rules.services.yml
Drupal\rules\EventSubscriber\RedirectEventSubscriber

File

src/EventSubscriber/RedirectEventSubscriber.php, line 13

Namespace

Drupal\rules\EventSubscriber
View source
class RedirectEventSubscriber implements EventSubscriberInterface {
    
    /**
     * Checks if a redirect rules action was executed.
     *
     * Redirects to the provided url if there is one.
     *
     * @param \Symfony\Component\HttpKernel\Event\ResponseEvent $event
     *   The response event.
     */
    public function checkRedirectIssued(ResponseEvent $event) {
        $request = $event->getRequest();
        $redirect_url = $request->attributes
            ->get('_rules_redirect_action_url');
        if (isset($redirect_url)) {
            $event->setResponse(new RedirectResponse($redirect_url));
        }
    }
    
    /**
     * Registers the methods in this class that should be listeners.
     *
     * @return array
     *   An array of event listener definitions.
     */
    public static function getSubscribedEvents() {
        $events[KernelEvents::RESPONSE][] = [
            'checkRedirectIssued',
        ];
        return $events;
    }

}

Members

Title Sort descending Modifiers Object type Summary
RedirectEventSubscriber::checkRedirectIssued public function Checks if a redirect rules action was executed.
RedirectEventSubscriber::getSubscribedEvents public static function Registers the methods in this class that should be listeners.