Ejemplo n.º 1
0
 public function register(Container $c)
 {
     // TODO dar opção de mudar o loader, não só annotations
     $c['extra.options'] = array('root_dir' => null, 'controller_namespace' => null, 'cache_dir' => sys_get_temp_dir());
     $c['extra.route_loader'] = function ($c) {
         return new AnnotationDirectoryLoader(new FileLocator($c['extra.options']['root_dir']), new AnnotatedRouteControllerLoader($c['annotation.reader']));
     };
     $c['extra.router'] = function ($c) {
         $router = new Router($c['routes'], $c['extra.route_loader'], $c['extra.options']['controller_namespace'], array('cache_dir' => $c['extra.options']['cache_dir'], 'debug' => $c['debug'], 'generator_dumper_class' => 'Symfony\\Component\\Routing\\Generator\\Dumper\\PhpGeneratorDumper', 'generator_cache_class' => 'BrodaUrlGenerator', 'matcher_dumper_class' => 'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper', 'matcher_cache_class' => 'BrodaRequestMatcher', 'resource_type' => 'annotation'), $c['routing.request_context']);
         return $router;
     };
     $c->extend('routing.url_generator', function ($generator, $c) {
         /* @var $router Router */
         $router = $c['extra.router'];
         $router->setOption('generator_class', get_class($generator));
         $router->setOption('generator_base_class', get_class($generator));
         return $router;
     });
     $c->extend('routing.request_matcher', function ($matcher, $c) {
         /* @var $router Router */
         $router = $c['extra.router'];
         $router->setOption('matcher_class', get_class($matcher));
         $router->setOption('matcher_base_class', get_class($matcher));
         return $router;
     });
 }
 public function register(Container $container)
 {
     $container['bootstrap.template_dir'] = __DIR__ . '/../Resources/views';
     $container['bootstrap.icon_prefix'] = 'glyphicon';
     $container['bootstrap.icon_tag'] = 'span';
     $container['bootstrap.flash'] = function () use($container) {
         return new FlashMessage($container['session']);
     };
     $container['form.type.extensions'] = $container->extend('form.type.extensions', function ($extensions) use($container) {
         $extensions[] = new ButtonTypeExtension();
         $extensions[] = new InputGroupButtonExtension();
         $extensions[] = new StaticControlExtension();
         $extensions[] = new TypeSetterExtension();
         return $extensions;
     });
     $container['form.extensions'] = $container->extend('form.extensions', function ($extensions) use($container) {
         $extensions[] = new BootstrapExtension();
         return $extensions;
     });
     $container['twig'] = $container->extend('twig', function (\Twig_Environment $twig) use($container) {
         $twig->addExtension(new BootstrapIconExtension($container['bootstrap.icon_prefix'], $container['bootstrap.icon_tag']));
         $twig->addExtension(new BootstrapLabelExtension());
         $twig->addExtension(new BootstrapBadgeExtension());
         $twig->addExtension(new BootstrapFormExtension());
         return $twig;
     });
     $container['twig.loader.filesystem'] = $container->extend('twig.loader.filesystem', function (\Twig_Loader_Filesystem $twigLoaderFilesystem) use($container) {
         $twigLoaderFilesystem->addPath($container['bootstrap.template_dir'], 'SaxulumBootstrapProvider');
         return $twigLoaderFilesystem;
     });
 }
 public function register(Container $app)
 {
     $app->extend('data_collectors', function ($collectors, $app) {
         $collectors['db'] = function ($app) {
             $collector = new DoctrineDataCollector($app['dbs']);
             $timeLogger = new DbalLogger($app['logger'], $app['stopwatch']);
             foreach ($app['dbs.options'] as $name => $params) {
                 /** @var Connection $db */
                 $db = $app['dbs'][$name];
                 $loggerChain = new LoggerChain();
                 $logger = new DebugStack();
                 $loggerChain->addLogger($logger);
                 $loggerChain->addLogger($timeLogger);
                 $db->getConfiguration()->setSQLLogger($loggerChain);
                 $collector->addLogger($name, $logger);
             }
             return $collector;
         };
         return $collectors;
     });
     $app['data_collector.templates'] = $app->extend('data_collector.templates', function ($templates) {
         $templates[] = array('db', '@DoctrineBundle/Collector/db.html.twig');
         return $templates;
     });
     $app['twig.loader.filesystem'] = $app->extend('twig.loader.filesystem', function ($loader) {
         /** @var \Twig_Loader_Filesystem $loader */
         $loader->addPath(dirname(__DIR__) . '/Resources/views', 'DoctrineBundle');
         return $loader;
     });
 }
 public function register(Container $app)
 {
     if (!isset($app['request_context'])) {
         throw new \LogicException('Register RoutingServiceProvider first');
     }
     $app['controllers_path'] = array();
     $app['router.options'] = array();
     $app['router.loader'] = function () use($app) {
         return new AnnotationDirectoryLoader(new FileLocator($app['controllers_path']), new AnnotationClassLoader($app['annotation.reader']));
     };
     $app['router'] = function () use($app) {
         $router = new Router($app['router.loader'], '', array('cache_dir' => $app['router.options']['cache_dir'], 'debug' => $app['debug'], 'generator_class' => 'Symfony\\Component\\Routing\\Generator\\UrlGenerator', 'generator_cache_class' => 'BrodaUrlGenerator', 'matcher_class' => 'Silex\\Provider\\Routing\\RedirectableUrlMatcher', 'matcher_cache_class' => 'BrodaUrlMatcher'), $app['request_context']);
         return $router;
     };
     $app->extend('routes', function ($oldRoutes) use($app) {
         $routes = $app['router']->getRouteCollection();
         $routes->addCollection($oldRoutes);
         // aggregates old-school defined routes
         return $routes;
     });
     $app->extend('url_matcher', function () use($app) {
         return $app['router'];
     });
     $app->extend('url_generator', function () use($app) {
         return $app['router'];
     });
 }
Ejemplo n.º 5
0
 public function register(Container $app)
 {
     $app['menu_manager'] = function ($app) {
         return new MenuManager($app, $app['menu']);
     };
     $app['menu_manager.security'] = function ($app) {
         return new MenuSecurityService($app);
     };
     $app['twig.loader.filesystem'] = $app->extend('twig.loader.filesystem', function ($filesystem, $app) {
         $filesystem->addPath(__DIR__ . '/../Resource/views', 'MenuManager');
         return $filesystem;
     });
     $app['twig'] = $app->extend('twig', function ($twig, $app) {
         $twig->addFunction(new \Twig_SimpleFunction('menu', function ($which = 'main', Item $item = null, $paramList = [], $activeOnly = false) use($app) {
             return $app['menu_manager']->render($which, $item, $paramList, $activeOnly);
         }));
         $twig->addFunction(new \Twig_SimpleFunction('breadcrumb', function ($paramList = []) use($app) {
             return $app['menu_manager']->renderBreadcrumb($paramList);
         }));
         return $twig;
     });
     // Current route name
     $app->before(function (Request $request) use($app) {
         $app['menu_manager']->setCurrentRoute($request->get('_route'));
     });
 }
 /**
  * register
  *
  * @see ServiceProviderInterface
  */
 public function register(Container $app)
 {
     $app->extend('data_collectors', function ($collectors, $app) {
         $collectors['db'] = function ($app) {
             return new DatabaseDataCollector($app['pomm']);
         };
         return $collectors;
     });
     $app['data_collector.templates'] = $app->extend('data_collector.templates', function ($templates) {
         $templates[] = ['db', '@Pomm/Profiler/db.html.twig'];
         return $templates;
     });
     $app['twig'] = $app->extend('twig', function ($twig, $app) {
         if (!$twig->hasExtension('yaml')) {
             $twig->addExtension(new YamlExtension());
         }
         return $twig;
     });
     $app->extend('twig.loader.filesystem', function ($loader, $app) {
         $loader->addPath($app['pomm.templates_path'], 'Pomm');
         return $loader;
     });
     $app['pomm.templates_path'] = function () {
         $r = new \ReflectionClass('PommProject\\Silex\\ProfilerServiceProvider\\DatabaseDataCollector');
         return dirname(dirname(dirname($r->getFileName()))) . '/views';
     };
 }
Ejemplo n.º 7
0
 /**
  * {@inheritdoc}
  */
 public function register(Container $app)
 {
     $app['puli.factory'] = function () {
         $factoryClass = PULI_FACTORY_CLASS;
         return new $factoryClass();
     };
     $app['puli.repository'] = function ($app) {
         return $app['puli.factory']->createRepository();
     };
     $app['puli.discovery'] = function ($app) {
         return $app['puli.factory']->createDiscovery();
     };
     $app['puli.url_generator'] = function ($app) {
         return $app['puli.factory']->createUrlGenerator($app['puli.discovery']);
     };
     if (isset($app['twig'])) {
         if (interface_exists('Puli\\UrlGenerator\\Api\\UrlGenerator')) {
             $app->extend('twig', function ($twig, $app) {
                 $twig->addExtension(new PuliExtension($app['puli.repository'], $app['puli.url_generator']));
                 return $twig;
             });
         }
         $app->extend('twig.loader', function ($loader, $app) {
             $loader->addLoader(new PuliTemplateLoader($app['puli.repository']));
             return $loader;
         });
     }
 }
Ejemplo n.º 8
0
 /**
  * {@inheritdoc}
  */
 public function register(Container $app)
 {
     //  @todo crear DoctrineOrmManagerRegistryProvider
     //  o poner en boot estos servicios
     $app->extend('form.extensions', function ($extensions, $app) {
         $extensions[] = new DoctrineOrmExtension($app['doctrine']);
         return $extensions;
     });
     $app['doctrine.orm.validator.unique_validator'] = function ($app) {
         return new UniqueEntityValidator($app['doctrine']);
     };
     if (!isset($app['validator.validator_service_ids'])) {
         $app['validator.validator_service_ids'] = [];
     }
     $app['validator.validator_service_ids'] = array_merge($app['validator.validator_service_ids'], ['doctrine.orm.validator.unique' => 'doctrine.orm.validator.unique_validator']);
     $app->extend('validator.object_initializers', function (array $objectInitializers, $app) {
         $objectInitializers[] = new DoctrineInitializer($app['doctrine']);
         return $objectInitializers;
     });
     $app['doctrine'] = function ($app) {
         return new ManagerRegistry($app);
     };
     $app['orm.em'] = function ($app) {
         $em = EntityManager::create($app['db'], $app['orm.config'], $app['db.event_manager']);
         return $em;
     };
     // Entity manager alias
     $app['em'] = function ($app) {
         return $app['orm.em'];
     };
     $app['orm.config'] = function ($app) {
         $config = new Configuration();
         // @todo path!
         $config->setProxyDir(sprintf('%s/../../../../../../var/cache/doctrine/proxies', __DIR__));
         $config->setProxyNamespace('DoctrineProxies');
         $config->setAutoGenerateProxyClasses($app['debug']);
         // The strongly recommended FALSE in production
         $chain = new MappingDriverChain();
         // Pulsar
         $path = realpath(sprintf('%s/../Entity', __DIR__));
         $driver = $config->newDefaultAnnotationDriver((array) $path, false);
         $chain->addDriver($driver, 'Pulsar\\Entity');
         // App
         $path = realpath(sprintf('%s/../../../../../../src/App', __DIR__));
         $driver = $config->newDefaultAnnotationDriver((array) $path, false);
         $chain->addDriver($driver, 'App\\Entity');
         $config->setMetadataCacheImpl($app['orm.cache']);
         $config->setMetadataDriverImpl($chain);
         return $config;
     };
     $app['orm.cache'] = function () {
         return new ArrayCache();
     };
 }
 public function register(Container $container)
 {
     $container['doctrine'] = function ($container) {
         return new ManagerRegistry($container);
     };
     if (isset($container['form.extensions']) && class_exists('Symfony\\Bridge\\Doctrine\\Form\\DoctrineOrmExtension')) {
         $container['form.extensions'] = $container->extend('form.extensions', function ($extensions, $container) {
             $extensions[] = new DoctrineOrmExtension($container['doctrine']);
             return $extensions;
         });
     }
     if (isset($container['validator']) && class_exists('Symfony\\Bridge\\Doctrine\\Validator\\Constraints\\UniqueEntityValidator')) {
         $container['doctrine.orm.validator.unique_validator'] = function ($container) {
             return new UniqueEntityValidator($container['doctrine']);
         };
         if (!isset($container['validator.validator_service_ids'])) {
             $container['validator.validator_service_ids'] = array();
         }
         $container['validator.validator_service_ids'] = array_merge($container['validator.validator_service_ids'], array('doctrine.orm.validator.unique' => 'doctrine.orm.validator.unique_validator'));
         $container['validator.object_initializers'] = $container->extend('validator.object_initializers', function (array $objectInitializers) use($container) {
             $objectInitializers[] = new DoctrineInitializer($container['doctrine']);
             return $objectInitializers;
         });
     }
     if (class_exists('Saxulum\\DoctrineOrmCommands\\Command\\CreateDatabaseDoctrineCommand')) {
         if (isset($container['console'])) {
             $container['console'] = $container->extend('console', function (ConsoleApplication $consoleApplication) use($container) {
                 $helperSet = $consoleApplication->getHelperSet();
                 $helperSet->set(new ManagerRegistryHelper($container['doctrine']), 'doctrine');
                 return $consoleApplication;
             });
         }
         if (isset($container['console.commands'])) {
             $container['console.commands'] = $container->extend('console.commands', function ($commands) use($container) {
                 $commands[] = new CreateDatabaseDoctrineCommand();
                 $commands[] = new DropDatabaseDoctrineCommand();
                 $commands[] = new CreateSchemaDoctrineCommand();
                 $commands[] = new UpdateSchemaDoctrineCommand();
                 $commands[] = new DropSchemaDoctrineCommand();
                 $commands[] = new RunDqlDoctrineCommand();
                 $commands[] = new RunSqlDoctrineCommand();
                 $commands[] = new ConvertMappingDoctrineCommand();
                 $commands[] = new ClearMetadataCacheDoctrineCommand();
                 $commands[] = new ClearQueryCacheDoctrineCommand();
                 $commands[] = new ClearResultCacheDoctrineCommand();
                 $commands[] = new InfoDoctrineCommand();
                 $commands[] = new ValidateSchemaCommand();
                 $commands[] = new EnsureProductionSettingsDoctrineCommand();
                 return $commands;
             });
         }
     }
 }
 /**
  * Register the services required to render forms for the web application
  *
  * @param Container $container
  */
 public function register(Container $container)
 {
     $container->extend('twig.environment', function (Environment $twig) use($container) {
         $renderer = new FormRenderer(new FormTheme($twig, $container['forms']['theme']));
         $twig->addExtension(new FormExtension($renderer));
         return $twig;
     });
     $container->extend('twig.loader', function (Loader $loader) {
         $loader->addPath(__DIR__ . '/../../../../../vendor/comphppuebla/easy-forms/src/EasyForms/Bridges/Twig');
         return $loader;
     });
 }
 /**
  * @param Container $app
  */
 public function register(Container $app)
 {
     if (!isset($app['form.factory'])) {
         throw new \LogicException('You must register the FormServiceProvider to use the FormFilterServiceProvider.');
     }
     $app['lexik_form_filter.query_builder_updater'] = function () use($app) {
         return new FilterBuilderUpdater($app['lexik_form_filter.form_data_extractor'], $app['dispatcher']);
     };
     // Alias
     $app['form_filter'] = function () use($app) {
         return $app['lexik_form_filter.query_builder_updater'];
     };
     // Filter Types
     $app['form.types'] = $app->extend('form.types', function ($types) use($app) {
         $types = array_merge($types, [new Type\TextFilterType(), new Type\NumberFilterType(), new Type\NumberRangeFilterType(), new Type\CheckboxFilterType(), new Type\BooleanFilterType(), new Type\ChoiceFilterType(), new Type\DateFilterType(), new Type\DateRangeFilterType(), new Type\DateTimeFilterType(), new Type\DateTimeRangeFilterType(), new Type\CollectionAdapterFilterType(), new Type\SharedableFilterType()]);
         if (isset($app['doctrine'])) {
             $types[] = new Type\EntityFilterType($app['doctrine']);
         }
         return $types;
     });
     // Type extension
     $app['form.type.extensions'] = $app->extend('form.type.extensions', function ($extensions) {
         $extensions[] = new FilterTypeExtension();
         return $extensions;
     });
     // Form data extraction
     $app['lexik_form_filter.form_data_extractor'] = function () {
         $extractor = new FormDataExtractor();
         $extractor->addMethod(new DefaultExtractionMethod());
         $extractor->addMethod(new TextExtractionMethod());
         $extractor->addMethod(new ValueKeysExtractionMethod());
         return $extractor;
     };
     $app['lexik_form_filter.filter_prepare'] = function () {
         return new PrepareListener();
     };
     // Subscriber to get filter condition
     $app['lexik_form_filter.get_filter.doctrine_orm'] = function () {
         return new DoctrineORMSubscriber();
     };
     $app['lexik_form_filter.get_filter.doctrine_dbal'] = function () {
         return new DoctrineDBALSubscriber();
     };
     // Listener to apply filter conditions
     $app['lexik_form_filter.apply_filter.doctrine_orm'] = function () {
         return new DoctrineApplyFilterListener(null);
     };
     $app['lexik_form_filter.apply_filter.doctrine_dbal'] = function () {
         return new DoctrineApplyFilterListener(null);
     };
 }
 /**
  * {@inheritDoc}
  */
 public function register(Container $app)
 {
     $app['sentry.options'] = [];
     $levels = ['debug' => Logger::DEBUG, 'info' => Logger::INFO, 'notice' => Logger::NOTICE, 'warning' => Logger::WARNING, 'error' => Logger::ERROR, 'critical' => Logger::CRITICAL, 'alert' => Logger::ALERT, 'emergency' => Logger::EMERGENCY];
     $app['sentry'] = function ($app) {
         if (!isset($app['sentry.options']['dsn']) || empty($app['sentry.options']['dsn'])) {
             throw new RuntimeException('sentry dsn is empty.');
         }
         $options = $app['sentry.options'];
         unset($options['dsn']);
         if (isset($options['level'])) {
             unset($options['level']);
         }
         if (!isset($options['tags'])) {
             $options['tags'] = [];
         }
         $options['tags']['php_version'] = phpversion();
         return new Raven_Client($app['sentry.options']['dsn'], $options);
     };
     $app['monolog'] = $app->extend('monolog', function (LoggerInterface $monolog, $app) use($levels) {
         $level = Logger::NOTICE;
         if (isset($app['sentry.options']['level']) && isset($levels[$app['sentry.options']['level']])) {
             $level = $levels[$app['sentry.options']['level']];
         }
         $monolog->pushHandler(new RavenHandler($app['sentry'], $level));
         return $monolog;
     });
 }
 /**
  * {@inheritdoc}
  */
 public function register(Container $app)
 {
     if (!isset($app['console'])) {
         throw new \LogicException('You must register the ConsoleServiceProvider to use the DoctrineConsoleServiceProvider.');
     }
     if (!isset($app['orm'])) {
         throw new \LogicException('You must register the DoctrineOrmServiceProvider to use the DoctrineConsoleServiceProvider.');
     }
     $app['console'] = $app->extend('console', function (ConsoleApplication $console) use($app) {
         $helper = $console->getHelperSet();
         $helper->set(new ConnectionHelper($app['db']), 'db');
         $helper->set(new EntityManagerHelper($app['orm']), 'em');
         $console->add(new ImportCommand());
         $console->add(new ReservedWordsCommand());
         $console->add(new RunSqlCommand());
         $console->add(new MetadataCommand());
         $console->add(new ResultCommand());
         $console->add(new QueryCommand());
         $console->add(new CreateCommand());
         $console->add(new UpdateCommand());
         $console->add(new DropCommand());
         $console->add(new EnsureProductionSettingsCommand());
         $console->add(new ConvertDoctrine1SchemaCommand());
         $console->add(new GenerateRepositoriesCommand());
         $console->add(new GenerateEntitiesCommand());
         $console->add(new GenerateProxiesCommand());
         $console->add(new ConvertMappingCommand());
         $console->add(new RunDqlCommand());
         $console->add(new ValidateSchemaCommand());
         $console->add(new InfoCommand());
         $console->add(new MappingDescribeCommand());
         return $console;
     });
 }
 public function register(Container $app)
 {
     if (!isset($app['validator'])) {
         throw new \LogicException('You must register the ValidatorServiceProvider to use the DoctrineManagerRegistryServiceProvider.');
     }
     $app['doctrine'] = function () use($app) {
         $container = new Container();
         $ems = $app['ems'];
         $dbs = $app['dbs'];
         $connections = array_map(function ($name) use($container, $dbs) {
             $container['dbs.' . $name] = $dbs[$name];
             return 'dbs.' . $name;
         }, $dbs->keys());
         $managers = array_map(function ($name) use($container, $ems) {
             $container['ems.' . $name] = $ems[$name];
             return 'ems.' . $name;
         }, $ems->keys());
         return new ManagerRegistry($container, $connections, $managers, $app['dbs.default'], $app['ems.default']);
     };
     $app['validator.unique'] = function () use($app) {
         if (!class_exists('Symfony\\Bridge\\Doctrine\\Validator\\Constraints\\UniqueEntityValidator')) {
             return;
         }
         return new UniqueEntityValidator($app['doctrine']);
     };
     $app['validator.validator_service_ids'] = array_merge($app['validator.validator_service_ids'], ['doctrine.orm.validator.unique' => 'validator.unique']);
     if (isset($app['form.extensions'])) {
         $app['form.extensions'] = $app->extend('form.extensions', function ($extensions) use($app) {
             if (class_exists('Symfony\\Bridge\\Doctrine\\Form\\DoctrineOrmExtension')) {
                 $extensions[] = new DoctrineOrmExtension($app['doctrine']);
             }
             return $extensions;
         });
     }
 }
 public function testDump()
 {
     $container = new Container();
     $container['debug'] = false;
     $container['charset'] = 'utf-8';
     $logger = $this->getLogger();
     $container['logger'] = $logger;
     $container->register(new TwigServiceProvider());
     $twigPath = $this->getTwigPath();
     $container['twig.loader.filesystem'] = $container->extend('twig.loader.filesystem', function (\Twig_Loader_Filesystem $twigLoaderFilesystem) use($twigPath) {
         $twigLoaderFilesystem->addPath($twigPath, 'SaxulumAsseticTwig');
         return $twigLoaderFilesystem;
     });
     $container->register(new AsseticTwigProvider(), array('assetic.asset.root' => $this->getFixturesPath(), 'assetic.asset.asset_root' => $this->getAssetPath()));
     /** @var Dumper $dumper */
     $dumper = $container['assetic.asset.dumper'];
     $dumper->dump();
     if (count($logger->entries)) {
         var_dump($logger->entries);
     }
     $this->assertCount(0, $logger->entries);
     $this->fileComparsion('css/test-copyfile.css');
     $this->fileComparsion('image/test.png');
     $this->fileComparsion('css/test-less.css');
     $this->fileComparsion('css/test-scss.css');
     $this->fileComparsion('css/test-cssmin.css');
     $this->fileComparsion('css/test-csscompress.css');
     $this->fileComparsion('js/test.js');
 }
 public function register(Container $container)
 {
     $container['simpleform.config.path'] = '';
     $container['simpleform.config.cache_path'] = '';
     $container['simpleform.config.class'] = 'PhpGo\\SimpleAdminBundle\\Form\\Config';
     $container['simpleform.forms.class'] = 'PhpGo\\SimpleAdminBundle\\Form\\Forms';
     $container['simpleform.custom_fields'] = [];
     $container['form.types'] = function () {
         return [new StringType()];
     };
     $container['simpleform.config'] = function (Container $container) {
         //            $coreFieldsNamespace = 'PhpGo\\SimpleAdminBundle\\Form\\Field\\';
         $coreFields = ['PhpGo\\SimpleAdminBundle\\Form\\Field\\StringField'];
         Forms::registerFields($coreFields);
         Forms::registerFields($container['simpleform.custom_fields']);
         $container->extend('form.types', function ($types, $container) {
             /** @var FieldAbstract $field */
             foreach ($container['simpleform.custom_fields'] as $field) {
                 if ($type = $field::getType()) {
                     $types[] = $type;
                 }
             }
             return $types;
         });
         $config = $container['simpleform.config.class']::createFromYaml($container['simpleform.config.path']);
         return $config;
     };
     $container['forms'] = function ($container) {
         /** @var Forms $forms */
         $forms = new $container['simpleform.forms.class']($container['simpleform.config'], $container['form.factory']);
         return $forms;
     };
 }
Ejemplo n.º 17
0
 /**
  * {@inheritdoc}
  */
 public function register(Container $app)
 {
     $app->extend('form.types', function (array $types, $app) {
         $types[] = new EntityHiddenType($app['doctrine']);
         return $types;
     });
 }
Ejemplo n.º 18
0
 public function register(Container $app)
 {
     $app['twig.loader']->addLoader(new Twig_Loader_Filesystem(__DIR__ . '/../View'));
     $app->extend('twig', function ($twig, $app) {
         $twig->addFilter(new Twig_SimpleFilter('cast_to_array', function ($stdClassObject) {
             return (array) $stdClassObject;
         }));
         return $twig;
     });
     //        $app['twig'] = $app->extend('twig', function ($twig,$app) {
     //            $twig->addGlobal('paginator.range', $app['paginator.range']);
     //            $twig->addExtension(new Twig\TwigPaginatorExtension($app['request_stack']));
     //
     //            return $twig;
     //        });
     $app['paginator'] = $app->protect(function ($currentPageNumber, $totalItemsCount, $itemCountPerPage = null) use($app) {
         if (!$itemCountPerPage && isset($app['paginator.per_page'])) {
             $itemCountPerPage = $app['paginator.per_page'];
         }
         $paginator = new \Paginator\Paginator($currentPageNumber, $totalItemsCount, $itemCountPerPage);
         if (isset($app['paginator.range'])) {
             $paginator->setPageRange($app['paginator.range']);
         }
         if (isset($app['paginator.style'])) {
             $paginator->setDefaultScrollingStyle();
         }
         return $paginator->getPages();
     });
 }
Ejemplo n.º 19
0
 /**
  * Registers services on the given container.
  *
  * This method should only be used to configure services and parameters.
  * It should not get services.
  *
  * @param Container $pimple A container instance
  */
 public function register(Container $pimple)
 {
     $config = $this->configuration;
     $pimple['translator'] = function ($c) use($config) {
         $translator = new Translator($config);
         return $translator;
     };
     /*
      * Translate függvény és a getLocale függvény biztosítása a twighez
      */
     $pimple->extend('twig', function ($twig, $c) {
         /** @var Twig $mytwig */
         $mytwig = $twig;
         /** @var Translator $translator */
         $translator = $c["translator"];
         // Translate függvény biztosítása
         $translate = new \Twig_SimpleFunction('translate', function ($message, $params = [], $domain = null, $locale = null) use($translator) {
             return $translator->trans($message, $params, $domain, $locale);
         });
         $mytwig->getTwigEnvironment()->addFunction($translate);
         // Aktuális locale biztosítása
         $get_locale = new \Twig_SimpleFunction('get_locale', function () use($translator) {
             return $translator->getLocale();
         });
         $mytwig->getTwigEnvironment()->addFunction($get_locale);
         // Aktuális locale-ok biztosítása
         $get_locales = new \Twig_SimpleFunction('get_locales', function () use($translator) {
             return $translator->getFallbackLocales();
         });
         $mytwig->getTwigEnvironment()->addFunction($get_locales);
         return $mytwig;
     });
 }
 /**
  * {@inheritdoc}
  */
 public function register(Container $app)
 {
     $app['paginator.default_options'] = ['page_name' => 'page', 'page_range' => 5, 'sort_field_name' => 'sort', 'sort_direction_name' => 'direction', 'filter_field_name' => 'filterField', 'filter_value_name' => 'filterValue', 'distinct' => true, 'template' => ['pagination' => 'sliding.html.twig', 'sortable' => 'sortable_link.html.twig', 'filtration' => 'filtration.html.twig']];
     $app['paginator.helper.processor'] = function ($app) {
         return new Processor($app['url_generator'], $app['translator']);
     };
     $app['paginator'] = function ($app) {
         $reflClass = new \ReflectionClass('Knp\\Bundle\\PaginatorBundle\\KnpPaginatorBundle');
         $path = sprintf('%s/Resources/views/Pagination', dirname($reflClass->getFileName()));
         $app['twig.loader']->addLoader(new \Twig_Loader_Filesystem($path));
         $paginator = new Paginator($app['dispatcher']);
         $paginator->setDefaultPaginatorOptions(['pageParameterName' => $app['paginator.default_options']['page_name'], 'sortFieldParameterName' => $app['paginator.default_options']['sort_field_name'], 'sortDirectionParameterName' => $app['paginator.default_options']['sort_direction_name'], 'filterFieldParameterName' => $app['paginator.default_options']['filter_field_name'], 'filterValueParameterName' => $app['paginator.default_options']['filter_value_name'], 'distinct' => $app['paginator.default_options']['distinct']]);
         return $paginator;
     };
     $app['paginator.subscriber.paginate'] = function () {
         return new PaginationSubscriber();
     };
     $app['paginator.subscriber.sortable'] = function () {
         return new SortableSubscriber();
     };
     $app['paginator.subscriber.filtration'] = function () {
         return new FiltrationSubscriber();
     };
     $app['paginator.subscriber.sliding_pagination'] = function ($app) {
         $templateOptions = $app['paginator.default_options']['template'];
         $options = ['defaultPaginationTemplate' => $templateOptions['pagination'], 'defaultSortableTemplate' => $templateOptions['sortable'], 'defaultFiltrationTemplate' => $templateOptions['filtration'], 'defaultPageRange' => $app['paginator.default_options']['page_range']];
         return new SlidingPaginationSubscriber($options);
     };
     $app->extend('twig', function (\Twig_Environment $twig, $app) {
         $twig->addExtension(new PaginationExtension($app['paginator.helper.processor']));
         return $twig;
     });
 }
 /**
  * Registers services on the given container.
  *
  * This method should only be used to configure services and parameters.
  * It should not get services.
  *
  * @param  Container $container The Pimple DI container.
  * @return void
  */
 public function register(Container $container)
 {
     /**
      * @param  Container $container The Pimple DI Container.
      * @return ConfigInterface
      */
     $container['admin/config'] = function (Container $container) {
         $appConfig = $container['config'];
         return new AdminConfig($appConfig['admin']);
     };
     $container->extend('admin/config', function (ConfigInterface $adminConfig, Container $container) {
         $adminConfig['elfinder'] = new Config($adminConfig['elfinder']);
         return $adminConfig;
     });
     /**
      * @param  Container $container The Pimple DI Container.
      * @return ConfigInterface
      */
     $container['elfinder/config'] = function (Container $container) {
         return $container['admin/config']['elfinder'];
     };
     $this->registerAuthenticator($container);
     $this->registerAuthorizer($container);
     $this->registerUtilities($container);
     // Register Access-Control-List (acl)
     $container->register(new AclServiceProvider());
 }
 public function register(Container $app)
 {
     $app['request_matcher_class'] = 'Silex\\Provider\\Routing\\RedirectableUrlMatcher';
     $app['routing.locator'] = function () {
         return new FileLocator();
     };
     $app['routing.loader.xml'] = $app->factory(function (Container $app) {
         return new XmlFileLoader($app['routing.locator']);
     });
     $app['routing.loader.php'] = $app->factory(function (Container $app) {
         return new PhpFileLoader($app['routing.locator']);
     });
     $app['routing.loader.yml'] = $app->factory(function (Container $app) {
         if (class_exists('Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBag')) {
             return new YamlFileLoader($app['routing.locator'], new ParameterBag($app['routing.replacements']));
         }
         return new YamlFileLoader($app['routing.locator']);
     });
     $app['routing.loader.directory'] = $app->factory(function (Container $app) {
         return new DirectoryLoader($app['routing.locator']);
     });
     $app['routing.loader.resolver'] = function (Container $app) {
         $loaders = [$app['routing.loader.xml'], $app['routing.loader.php'], $app['routing.loader.directory']];
         if (class_exists('Symfony\\Component\\Yaml\\Yaml')) {
             $loaders[] = $app['routing.loader.yml'];
         }
         return new LoaderResolver($loaders);
     };
     $app['routing.loader'] = function (Container $app) {
         return new DelegatingLoader($app['routing.loader.resolver']);
     };
     $app['router'] = function (Container $app) {
         $options = ['debug' => $app['debug'], 'cache_dir' => $app['routing.cache_dir'], 'matcher_base_class' => $app['request_matcher_class'], 'matcher_class' => $app['request_matcher_class']];
         return new Router($app['routing.loader'], $app['routing.resource'], $options, $app['request_context'], $app['logger']);
     };
     $app['request_matcher'] = $app->extend('request_matcher', function ($matcher, $app) {
         $matchers = [$app['router'], $matcher];
         return new ChainUrlMatcher($matchers, $app['request_context']);
     });
     $app['url_generator'] = $app->extend('url_generator', function ($generator, $app) {
         $generators = [$app['router'], $generator];
         return new ChainUrlGenerator($generators, $app['request_context']);
     });
     $app['routing.resource'] = null;
     $app['routing.cache_dir'] = null;
     $app['routing.replacements'] = [];
 }
 public function register(Container $container)
 {
     $container['doctrine_mongodb'] = function ($container) {
         return new ManagerRegistry($container);
     };
     if (isset($container['form.extensions'])) {
         $container['form.extensions'] = $container->extend('form.extensions', function ($extensions, $container) {
             $extensions[] = new DoctrineMongoDBExtension($container['doctrine_mongodb']);
             return $extensions;
         });
     }
     if (isset($container['validator']) && class_exists('Symfony\\Bridge\\Doctrine\\Validator\\Constraints\\UniqueEntityValidator')) {
         $container['doctrine.orm.validator.unique_validator'] = function ($container) {
             return new UniqueEntityValidator($container['doctrine_mongodb']);
         };
         if (!isset($container['validator.validator_service_ids'])) {
             $container['validator.validator_service_ids'] = array();
         }
         $container['validator.validator_service_ids'] = array_merge($container['validator.validator_service_ids'], array('doctrine_odm.mongodb.unique' => 'doctrine.orm.validator.unique_validator'));
         $container['validator.object_initializers'] = $container->extend('validator.object_initializers', function (array $objectInitializers) use($container) {
             $objectInitializers[] = new DoctrineInitializer($container['doctrine_mongodb']);
             return $objectInitializers;
         });
     }
     if (class_exists('Saxulum\\DoctrineOrmCommands\\Command\\CreateDatabaseDoctrineCommand')) {
         if (isset($container['console'])) {
             $container['console'] = $container->extend('console', function (ConsoleApplication $consoleApplication) use($container) {
                 $helperSet = $consoleApplication->getHelperSet();
                 $helperSet->set(new ManagerRegistryHelper($container['doctrine_mongodb']), 'doctrine_mongodb');
                 return $consoleApplication;
             });
         }
         if (isset($container['console.commands'])) {
             $container['console.commands'] = $container->extend('console.commands', function ($commands) use($container) {
                 $commands[] = new CreateSchemaDoctrineODMCommand();
                 $commands[] = new UpdateSchemaDoctrineODMCommand();
                 $commands[] = new DropSchemaDoctrineODMCommand();
                 $commands[] = new QueryDoctrineODMCommand();
                 $commands[] = new ClearMetadataCacheDoctrineODMCommand();
                 $commands[] = new GenerateHydratorsDoctrineODMCommand();
                 $commands[] = new GenerateProxiesDoctrineODMCommand();
                 $commands[] = new InfoDoctrineODMCommand();
                 return $commands;
             });
         }
     }
 }
Ejemplo n.º 24
0
 public function register(Container $pimple)
 {
     $pimple->extend('request_matcher', function ($matcher, $pimple) {
         $matcher = new ChainMatcher([$pimple['routing.router'], $matcher]);
         $matcher->setContext($pimple['request_context']);
         return $matcher;
     });
     $pimple->extend('url_generator', function ($generator, $pimple) {
         $generator = new ChainUrlGenerator([$pimple['routing.router'], $generator]);
         $generator->setContext($pimple['request_context']);
         return $generator;
     });
     $pimple->extend('resolver', function ($resolver, $pimple) {
         return new ControllerResolver($resolver, $pimple);
     });
     $pimple['routing.config'] = function ($pimple) {
         $options = isset($pimple['routing.options']) ? $pimple['routing.options'] : [];
         $debug = isset($pimple['debug']) ? $pimple['debug'] : true;
         $paths = isset($pimple['root_dir']) ? [$pimple['root_dir']] : [];
         return $options + ['resource' => null, 'debug' => $debug, 'paths' => $paths, 'matcher_class' => 'Silex\\Provider\\Routing\\RedirectableUrlMatcher', 'matcher_base_class' => 'Silex\\Provider\\Routing\\RedirectableUrlMatcher'];
     };
     $pimple['routing.router'] = function ($pimple) {
         $config = $pimple['routing.config'];
         $resource = $config['resource'];
         unset($config['paths'], $config['resource']);
         return new Router($pimple['routing.loader'], $resource, $config, $pimple['request_context'], $pimple['logger']);
     };
     $pimple['routing.loader_resolver'] = function ($pimple) {
         $locator = $pimple['routing.locator'];
         $resolver = new LoaderResolver([new PhpFileLoader($locator), new XmlFileLoader($locator), new YamlFileLoader($locator), new NullLoader(), new ClosureLoader()]);
         if (class_exists('Doctrine\\Common\\Annotations\\AnnotationReader')) {
             $loader = new AnnotationClassLoader($pimple['routing.annotation_reader']);
             $resolver->addLoader(new AnnotationFileLoader($locator, $loader));
             $resolver->addLoader(new AnnotationDirectoryLoader($locator, $loader));
         }
         return $resolver;
     };
     $pimple['routing.loader'] = function ($pimple) {
         return new DelegatingLoader($pimple['routing.loader_resolver']);
     };
     $pimple['routing.locator'] = function ($pimple) {
         return new FileLocator($pimple['routing.config']['paths']);
     };
     $pimple['routing.annotation_reader'] = function ($pimple) {
         return new AnnotationReader();
     };
 }
 /**
  * Registers services on the given container.
  *
  * This method should only be used to configure services and parameters.
  * It should not get services.
  *
  * @param Container $pimple An Container instance
  */
 public function register(Container $pimple)
 {
     $pimple['debugbar.base_url'] = null;
     $pimple['debugbar.base_path'] = null;
     $pimple['debugbar'] = function ($c) {
         return new DebugBar();
     };
     $pimple['debugbar.collector.phpinfo'] = function ($c) {
         return new PhpInfoCollector();
     };
     $pimple->extend('debugbar', function (DebugBar $debugbar, Container $c) {
         $ids = preg_grep(self::COLLECTOR_MATCH, $c->keys());
         foreach ($ids as $id) {
             $debugbar->addCollector($c[$id]);
         }
         return $debugbar;
     });
     $pimple['debugbar.collector.messages'] = function ($c) {
         return new MessagesCollector();
     };
     $pimple['debugbar.collector.request_data'] = function ($c) {
         return new RequestDataCollector();
     };
     $pimple['debugbar.collector.time_data'] = function ($c) {
         return new TimeDataCollector();
     };
     $pimple['debugbar.collector.memory'] = function ($c) {
         return new MemoryCollector();
     };
     $pimple['debugbar.collector.exceptions'] = function ($c) {
         return new ExceptionsCollector();
     };
     $pimple['debugbar.handler.open'] = function ($c) {
         return new OpenHandler($c['debugbar']);
     };
     $pimple['debugbar.generator.request_id'] = function ($c) {
         return new RequestIdGenerator();
     };
     $pimple->extend('debugbar', function (DebugBar $debugbar, Container $c) {
         $debugbar->setRequestIdGenerator($c['debugbar.generator.request_id']);
         return $debugbar;
     });
     $pimple['debugbar.renderer'] = function ($c) {
         return $c['debugbar']->getJavascriptRenderer($c['debugbar.base_url'], $c['debugbar.base_path']);
     };
 }
Ejemplo n.º 26
0
 /**
  * {@inheritdoc}
  */
 public function register(Container $app)
 {
     $app['menu.factory'] = function ($app) {
         $factory = new MenuFactory();
         $factory->addExtension(new RoutingExtension($app['url_generator']));
         return $factory;
     };
     $app['menu.matcher'] = function ($app) {
         $matcher = new Matcher();
         if (isset($app['menu.matcher.configure'])) {
             $app['menu.matcher.configure']($matcher);
         }
         return $matcher;
     };
     $app['menu.matcher.configure'] = $app->protect(function (Matcher $matcher) use($app) {
         foreach ($app['menu.voters'] as $voter) {
             $matcher->addVoter($voter);
         }
     });
     $app['menu.voters'] = function ($app) {
         $request = $app['request_stack']->getMasterRequest();
         $voters = [];
         if (null !== $request) {
             $voters[] = new RouteVoter($request);
             $voters[] = new UriVoter($request->getRequestUri());
         }
         return $voters;
     };
     $app['menu.renderer.list'] = function ($app) {
         return new ListRenderer($app['menu.matcher'], [], $app['charset']);
     };
     $app['menu.provider'] = function ($app) {
         return new MenuProvider($app, $app['menus']);
     };
     if (!isset($app['menus'])) {
         $app['menus'] = [];
     }
     $app['menu.renderer'] = function ($app) {
         return new TwigRenderer($app['twig'], 'knp_menu.html.twig', $app['menu.matcher']);
     };
     $app['menu.renderer_provider'] = function ($app) {
         $app['menu.renderers'] = array_merge(['list' => 'menu.renderer.list'], ['twig' => 'menu.renderer'], isset($app['menu.renderers']) ? $app['menu.renderers'] : []);
         return new RendererProvider($app, 'twig', $app['menu.renderers']);
     };
     $app['menu.manipulator'] = function () {
         return new MenuManipulator();
     };
     $app['menu.helper'] = function ($app) {
         return new Helper($app['menu.renderer_provider'], $app['menu.provider'], $app['menu.manipulator']);
     };
     $app['menu.twig_extension'] = function ($app) {
         return new MenuExtension($app['menu.helper'], $app['menu.matcher'], $app['menu.manipulator']);
     };
     $app->extend('twig', function (\Twig_Environment $twig, $app) {
         $twig->addExtension($app['menu.twig_extension']);
         return $twig;
     });
 }
Ejemplo n.º 27
0
 /**
  * {@inheritdoc}
  */
 public function register(Container $app)
 {
     $app['security.login_manager'] = function ($app) {
         return new LoginManager($app['security.token_storage'], $app['security.user_checker']);
     };
     $app->extend('security.voters', function (array $voters = []) {
         $voters[] = new SuperAdminVoter();
         return $voters;
     });
 }
 public function register(Container $app)
 {
     $app->extend('data_collectors', function ($collectors, $app) {
         $collectors['db'] = function ($app) {
             $collector = new PdoDataCollector($app['pdo']);
             return $collector;
         };
         return $collectors;
     });
     $app['data_collector.templates'] = $app->extend('data_collector.templates', function ($templates) {
         $templates[] = array('db', '@DoctrineBundle/Collector/db.html.twig');
         return $templates;
     });
     $app['twig.loader.filesystem'] = $app->extend('twig.loader.filesystem', function ($loader) {
         /** @var \Twig_Loader_Filesystem $loader */
         $loader->addPath(dirname(__DIR__) . '/Resources/views', 'DoctrineBundle');
         return $loader;
     });
 }
 /**
  * {@inheritdoc}
  */
 public function register(Container $app)
 {
     $app['autolink.parser'] = function () {
         return new Autolink();
     };
     $app['twig'] = $app->extend('twig', function ($twig, $app) {
         $twig->addExtension(new AutolinkTwigExtension($app['autolink.parser']));
         return $twig;
     });
 }
 public function register(Container $api)
 {
     $api->extend('blimp.extend', function ($status, $api) {
         if ($status) {
             $api['security.oauth.grant.urn:blimp:accounts:google'] = function () {
                 return new Google();
             };
             if ($api->offsetExists('config.root')) {
                 $api->extend('config.root', function ($root, $api) {
                     $tb = new TreeBuilder();
                     $rootNode = $tb->root('google');
                     $rootNode->children()->scalarNode('client_id')->cannotBeEmpty()->end()->scalarNode('client_secret')->cannotBeEmpty()->end()->scalarNode('scope')->defaultValue('email https://www.googleapis.com/auth/plus.login')->end()->scalarNode('fields')->defaultValue('id,name,link,gender,email,picture')->end()->end();
                     $root->append($rootNode);
                     return $root;
                 });
             }
         }
         return $status;
     });
 }