déclaration dans le bundle de la mécanique des controlleurs

un controlleur qui contient une collection de Matcher
This commit is contained in:
Manuel Raynaud
2012-10-11 16:05:04 +02:00
parent 69ac78c790
commit b892264882
5 changed files with 152 additions and 32 deletions

View File

@@ -14,14 +14,38 @@ class TheliaBundle extends Bundle {
$container->addScope( new Scope('request'));
$container->register('request', 'Symfony\Component\HttpFoundation\Request');
$container->register('dispatcher','Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher')
->addArgument(new Reference('service_container'));
$container->register('resolver', 'Thelia\Controller\TheliaController');
$container->register('controller.default','Thelia\Controller\DefaultController');
$container->register('matcher.default','Thelia\Routing\Matcher\DefaultMatcher')
->addArgument(new Reference('controller.default'));
$container->register('matcher','Thelia\Routing\Matcher\theliaMatcherCollection')
->addMethodCall('add', array(new Reference('matcher.default'), -255))
//->addMethodCall('add','a matcher class (instance or class name)
;
$container->register('resolver', 'Symfony\Component\HttpKernel\Controller\ControllerResolver');
$container->register('parser','Thelia\Core\TheliaTemplate');
/**
* RouterListener implements EventSubscriberInterface and listen for kernel.request event
*/
$container->register('listener.router', 'Symfony\Component\HttpKernel\EventListener\RouterListener')
->setArguments(array(new Reference('matcher')));
//$container->register('listener.view')
$container->register('http_kernel','Symfony\Component\HttpKernel\HttpKernel')
->addArgument(new Reference('dispatcher'))
->addArgument(new Reference('resolver'));
$container->register('dispatcher','Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher')
->addArgument(new Reference('service_container'))
->addMethodCall('addSubscriber', array(new Reference('listener.router')));
}
}