Exemplo n.º 1
0
 public function register(Container $c)
 {
     $c['extra.paramconverter.auto_convert'] = true;
     $c['extra.paramconverter.manager'] = function ($c) {
         $converterManager = new ParamConverterManager();
         if (isset($c['doctrine.registry'])) {
             $converterManager->add(new DoctrineParamConverter($c['doctrine.registry']), 10, 'doctrine.orm');
         }
         $converterManager->add(new DateTimeParamConverter(), -5, 'datetime');
         return $converterManager;
     };
     $c['extra.controller_listener'] = function ($c) {
         return new ControllerListener($c['annotation.reader']);
     };
     $c['extra.paramconverter_listener'] = function ($c) {
         return new ParamConverterListener($c['extra.paramconverter.manager'], $c['extra.paramconverter.auto_convert']);
     };
     $c['extra.httpcache_listener'] = function () {
         return new HttpCacheListener();
     };
     $c['extra.security.expression_language'] = function () {
         return new ExpressionLanguage();
     };
     $c['extra.security_listener'] = function ($c) {
         return new SecurityListener(isset($c['security.context']) ? $c['security.context'] : null, $c['extra.security.expression_language'], isset($c['security.authentication.trust_resolver']) ? $c['security.authentication.trust_resolver'] : null, isset($c['security.role_hierarchy']) ? $c['security.role_hierarchy'] : null);
     };
 }
 public function register(Container $app)
 {
     if (!isset($app['routing.loader.resolver'])) {
         throw new \LogicException('You must register the RoutingServiceProvider to use the SensioFrameworkExtraServiceProvider.');
     }
     if (!isset($app['annotations'])) {
         throw new \LogicException('You must register the AnnotationsServiceProvider to use the SensioFrameworkExtraServiceProvider.');
     }
     if (!isset($app['templating'])) {
         throw new \LogicException('You must register the TemplatingServiceProvider to use the SensioFrameworkExtraServiceProvider.');
     }
     $app['sensio_framework_extra.routing.loader.annot_dir'] = function (Container $app) {
         return new AnnotationDirectoryLoader(new FileLocator(), $app['sensio_framework_extra.routing.loader.annot_class']);
     };
     $app['sensio_framework_extra.routing.loader.annot_file'] = function (Container $app) {
         return new AnnotationFileLoader(new FileLocator(), $app['sensio_framework_extra.routing.loader.annot_class']);
     };
     $app['sensio_framework_extra.routing.loader.annot_class'] = function (Container $app) {
         return new AnnotatedRouteControllerLoader($app['annotations']);
     };
     // listeners
     $app['sensio_framework_extra.controller.listener'] = function (Container $app) {
         return new ControllerListener($app['annotations']);
     };
     $app['sensio_framework_extra.cache.listener'] = function () {
         return new HttpCacheListener();
     };
     $app['sensio_framework_extra.security.listener'] = function (Container $app) {
         $getOr = function ($name, $notfound = null) use($app) {
             return isset($app[$name]) ? $app[$name] : $notfound;
         };
         return new SecurityListener(null, $app['sensio_framework_extra.security.expression_language'], $getOr('security.trust_resolver'), new RoleHierarchy($getOr('security.role_hierarchy', [])), $getOr('security.token_storage'), $getOr('security.authorization_checker'));
     };
     $app['sensio_framework_extra.view.listener'] = function (Container $app) {
         return new TemplateListener($app['templating'], new TemplateGuesser());
     };
     $app['sensio_framework_extra.converter.listener'] = function (Container $app) {
         return new ParamConverterListener($app['sensio_framework_extra.converter.manager'], true);
     };
     $app['sensio_framework_extra.psr7.listener.response'] = function (Container $app) {
         return new PsrResponseListener($app['sensio_framework_extra.psr7.http_foundation_factory']);
     };
     $app['sensio_framework_extra.security.expression_language'] = function () {
         return new ExpressionLanguage();
     };
     $app['sensio_framework_extra.converter.manager'] = function (Container $app) {
         $manager = new ParamConverterManager();
         $manager->add($app['sensio_framework_extra.converter.datetime']);
         if (class_exists('Symfony\\Bridge\\PsrHttpMessage\\Factory\\HttpFoundationFactory')) {
             $manager->add($app['sensio_framework_extra.psr7.converter.server_request']);
         }
         if (isset($app['doctrine'])) {
             $manager->add($app['sensio_framework_extra.converter.doctrine.orm']);
         }
         return $manager;
     };
     $app['sensio_framework_extra.psr7.http_message_factory'] = function () {
         return new DiactorosFactory();
     };
     $app['sensio_framework_extra.psr7.http_foundation_factory'] = function () {
         return new HttpFoundationFactory();
     };
     $app['sensio_framework_extra.psr7.converter.server_request'] = function (Container $app) {
         return new PsrServerRequestParamConverter($app['sensio_framework_extra.psr7.http_message_factory']);
     };
     $app['sensio_framework_extra.converter.doctrine.orm'] = function (Container $app) {
         return new DoctrineParamConverter($app['doctrine']);
     };
     $app['sensio_framework_extra.converter.datetime'] = function () {
         return new DateTimeParamConverter();
     };
     $app['routing.loader.resolver'] = $app->extend('routing.loader.resolver', function (LoaderResolverInterface $resolver, Container $app) {
         $resolver->addLoader($app['sensio_framework_extra.routing.loader.annot_dir']);
         $resolver->addLoader($app['sensio_framework_extra.routing.loader.annot_file']);
         $resolver->addLoader($app['sensio_framework_extra.routing.loader.annot_class']);
         return $resolver;
     });
 }
Exemplo n.º 3
0
 public function testApplyNotCalledOnAlreadyConvertedObjects()
 {
     $converter = $this->createParamConverterMock();
     $converter->expects($this->never())->method('supports');
     $converter->expects($this->never())->method('apply');
     $request = new Request();
     $request->attributes->set('converted', new \stdClass());
     $configuration = new Configuration\ParamConverter(array('name' => 'converted', 'class' => 'stdClass'));
     $manager = new ParamConverterManager();
     $manager->add($converter);
     $manager->apply($request, array($configuration));
 }