- 
<?php
- /*
-  * This file is part of the Symfony package.
-  *
-  * (c) Fabien Potencier <fabien@symfony.com>
-  *
-  * For the full copyright and license information, please view the LICENSE
-  * file that was distributed with this source code.
-  */
- namespace Symfony\Component\HttpKernel\EventListener;
- use Symfony\Component\HttpFoundation\Session\SessionInterface;
- use Symfony\Component\HttpKernel\Event\GetResponseEvent;
- use Symfony\Component\HttpKernel\KernelEvents;
- use Symfony\Component\EventDispatcher\EventSubscriberInterface;
- /**
-  * Sets the session in the request.
-  *
-  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
-  */
- abstract class AbstractSessionListener implements EventSubscriberInterface
- {
-     public function onKernelRequest(GetResponseEvent $event)
-     {
-         if (!$event->isMasterRequest()) {
-             return;
-         }
-         $request = $event->getRequest();
-         $session = $this->getSession();
-         if (null === $session || $request->hasSession()) {
-             return;
-         }
-         $request->setSession($session);
-     }
-     public static function getSubscribedEvents()
-     {
-         return array(
-             KernelEvents::REQUEST => array('onKernelRequest', 128),
-         );
-     }
-     /**
-      * Gets the session object.
-      *
-      * @return SessionInterface|null A SessionInterface instance or null if no session is available
-      */
-     abstract protected function getSession();
- }
-