EclipseGc

DrupalCoreContainer.php

Feb 14th, 2012
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.42 KB | None | 0 0
  1. <?php
  2.  
  3. namespace Drupal\Core;
  4.  
  5. use Symfony\Component\DependencyInjection\ContainerBuilder;
  6. use Symfony\Component\DependencyInjection\Reference;
  7. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  8. use Symfony\Component\HttpKernel\KernelEvents;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\EventDispatcher\Event;
  11.  
  12. class DrupalContainer extends ContainerBuilder {
  13.   public function __construct(ParameterBagInterface $parameterBag = null) {
  14.     parent::__construct($parameterBag);
  15.     $this->register('context', 'Symfony\Component\Routing\RequestContext')
  16.       ->addMethodCall('fromRequest', array($this->parameterBag->get('request')));
  17.     $this->register('matcher', 'Drupal\Core\UrlMatcher')
  18.       ->setArguments(array(new Reference('context')));
  19.     $this->register('resolver', 'Symfony\Component\HttpKernel\Controller\ControllerResolver');
  20.     $this->register('dispatcher', 'Symfony\Component\EventDispatcher\EventDispatcher')
  21.       ->addMethodCall('addListener', array(
  22.         KernelEvents::VIEW,
  23.         function(Event $event) {
  24.           $page_callback_result = $event->getControllerResult();
  25.           $event->setResponse(new Response(drupal_render_page($page_callback_result)));
  26.         }
  27.       ));
  28.     $this->register('kernel', 'Symfony\Component\HttpKernel\HttpKernel')
  29.       ->setArguments(array(new Reference('dispatcher'), new Reference('resolver')));
  30.   }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment