1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- namespace Drupal\Core\EventSubscriber;
- use Drupal\Core\Render\HtmlResponse;
- use Drupal\Core\Render\AttachmentsResponseProcessorInterface;
- use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
- use Symfony\Component\HttpKernel\KernelEvents;
- use Symfony\Component\EventDispatcher\EventSubscriberInterface;
- /**
- * Response subscriber to handle HTML responses.
- */
- class HtmlResponseSubscriber implements EventSubscriberInterface {
- /**
- * The HTML response attachments processor service.
- *
- * @var \Drupal\Core\Render\AttachmentsResponseProcessorInterface
- */
- protected $htmlResponseAttachmentsProcessor;
- /**
- * Constructs a HtmlResponseSubscriber object.
- *
- * @param \Drupal\Core\Render\AttachmentsResponseProcessorInterface $html_response_attachments_processor
- * The HTML response attachments processor service.
- */
- public function __construct(AttachmentsResponseProcessorInterface $html_response_attachments_processor) {
- $this->htmlResponseAttachmentsProcessor = $html_response_attachments_processor;
- }
- /**
- * Processes attachments for HtmlResponse responses.
- *
- * @param \Symfony\Component\HttpKernel\Event\FilterResponseEvent $event
- * The event to process.
- */
- public function onRespond(FilterResponseEvent $event) {
- $response = $event->getResponse();
- if (!$response instanceof HtmlResponse) {
- return;
- }
- $event->setResponse($this->htmlResponseAttachmentsProcessor->processAttachments($response));
- }
- /**
- * {@inheritdoc}
- */
- public static function getSubscribedEvents() {
- $events[KernelEvents::RESPONSE][] = ['onRespond'];
- return $events;
- }
- }
|