123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?php
- namespace Drupal\Core\EventSubscriber;
- use Drupal\Core\Extension\ModuleHandlerInterface;
- use Symfony\Component\HttpKernel\KernelEvents;
- use Symfony\Component\HttpKernel\Event\PostResponseEvent;
- use Symfony\Component\EventDispatcher\EventSubscriberInterface;
- /**
- * Subscriber for all responses.
- */
- class RequestCloseSubscriber implements EventSubscriberInterface {
- /**
- * @var \Drupal\Core\Extension\ModuleHandlerInterface
- */
- protected $moduleHandler;
- /**
- * Constructs a new RequestCloseSubscriber instance.
- *
- * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
- * The module handler.
- */
- public function __construct(ModuleHandlerInterface $module_handler) {
- $this->moduleHandler = $module_handler;
- }
- /**
- * Performs end of request tasks.
- *
- * @todo The body of this function has just been copied almost verbatim from
- * drupal_page_footer(). There's probably a lot in here that needs to get
- * removed/changed. Also, if possible, do more light-weight shutdowns on
- * AJAX requests.
- *
- * @param Symfony\Component\HttpKernel\Event\PostResponseEvent $event
- * The Event to process.
- */
- public function onTerminate(PostResponseEvent $event) {
- $this->moduleHandler->writeCache();
- }
- /**
- * Registers the methods in this class that should be listeners.
- *
- * @return array
- * An array of event listener definitions.
- */
- public static function getSubscribedEvents() {
- $events[KernelEvents::TERMINATE][] = ['onTerminate', 100];
- return $events;
- }
- }
|