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']; }); }
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'; }; }
/** * {@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; }); } }
/** * {@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; }; }
/** * {@inheritdoc} */ public function register(Container $app) { $app->extend('form.types', function (array $types, $app) { $types[] = new EntityHiddenType($app['doctrine']); return $types; }); }
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(); }); }
/** * 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; }); } } }
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']); }; }
/** * {@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; }); }
/** * {@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; }); }