public function register(Application $app) { $app['ffmpeg.configuration'] = array(); $app['ffmpeg.default.configuration'] = array('ffmpeg.threads' => 4, 'ffmpeg.timeout' => 300, 'ffmpeg.binaries' => array('avconv', 'ffmpeg'), 'ffprobe.timeout' => 30, 'ffprobe.binaries' => array('avprobe', 'ffprobe')); $app['ffmpeg.logger'] = null; $app['ffmpeg.configuration.build'] = $app->share(function (Application $app) { return array_replace($app['ffmpeg.default.configuration'], $app['ffmpeg.configuration']); }); $app['ffmpeg'] = $app['ffmpeg.ffmpeg'] = $app->share(function (Application $app) { $configuration = $app['ffmpeg.configuration.build']; if (isset($configuration['ffmpeg.timeout'])) { $configuration['timeout'] = $configuration['ffmpeg.timeout']; } return FFMpeg::create($configuration, $app['ffmpeg.logger'], $app['ffmpeg.ffprobe']); }); $app['ffprobe.cache'] = $app->share(function () { return new ArrayCache(); }); $app['ffmpeg.ffprobe'] = $app->share(function (Application $app) { $configuration = $app['ffmpeg.configuration.build']; if (isset($configuration['ffmpeg.timeout'])) { $configuration['timeout'] = $configuration['ffprobe.timeout']; } return FFProbe::create($configuration, $app['ffmpeg.logger'], $app['ffprobe.cache']); }); }
public function register(Application $app) { $app['csv.exporter.config'] = $app->share(function () { $config = new ExporterConfig(); return $config->setDelimiter(";")->setEnclosure('"')->setEscape("\\")->setToCharset('UTF-8')->setFromCharset('UTF-8'); }); $app['csv.exporter'] = $app->share(function ($app) { return new Exporter($app['csv.exporter.config']); }); $app['csv.lexer.config'] = $app->share(function ($app) { $lexer = new LexerConfig(); $lexer->setDelimiter(';')->setEnclosure('"')->setEscape("\\")->setToCharset('UTF-8')->setFromCharset('UTF-8'); return $lexer; }); $app['csv.lexer'] = $app->share(function ($app) { return new Lexer($app['csv.lexer.config']); }); $app['csv.interpreter'] = $app->share(function ($app) { return new Interpreter(); }); $app['csv.response'] = $app->protect(function ($callback) use($app) { // set headers to fix ie issues $response = new StreamedResponse($callback, 200, ['Expires' => 'Mon, 26 Jul 1997 05:00:00 GMT', 'Last-Modified' => gmdate('D, d M Y H:i:s') . ' GMT', 'Cache-Control' => 'no-store, no-cache, must-revalidate', 'Cache-Control' => 'post-check=0, pre-check=0', 'Pragma' => 'no-cache', 'Content-Type' => 'text/csv', 'Cache-Control' => 'max-age=3600, must-revalidate', 'Content-Disposition' => 'max-age=3600, must-revalidate']); $response->headers->set('Content-Disposition', $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'export.csv')); }); }
/** * Returns routes to connect to the given application. * * @param Application $app An Application instance * * @return ControllerCollection A ControllerCollection instance */ public function connect(Application $app) { $app['role_controller'] = $app->share(function (Application $app) { return new ReadRoleRestController($app['role_service'], $app['role_reading_service'], $app['current_user'], $app['config']['user_permissions'], $app['role_search_repository'], $app[UserPermissionsServiceProvider::USER_PERMISSIONS_READ_REPOSITORY]); }); $app['role_edit_controller'] = $app->share(function (Application $app) { return new EditRoleRestController($app['role_editing_service'], $app['event_command_bus'], new UpdateRoleRequestDeserializer(), $app[LabelServiceProvider::READ_SERVICE]); }); /** @var ControllerCollection $controllers */ $controllers = $app['controllers_factory']; $controllers->get('/roles/', 'role_controller:search'); $controllers->post('/roles/', 'role_edit_controller:create'); $controllers->get('/roles/{id}', 'role_controller:get')->bind('role'); $controllers->patch('/roles/{id}', 'role_edit_controller:update'); $controllers->delete('/roles/{id}', 'role_edit_controller:delete'); $controllers->get('/permissions/', 'role_controller:getPermissions'); $controllers->get('/user/permissions/', 'role_controller:getUserPermissions'); $controllers->get('/roles/{roleId}/users/', 'role_controller:getRoleUsers'); $controllers->put('/roles/{roleId}/permissions/{permissionKey}', 'role_edit_controller:addPermission'); $controllers->delete('/roles/{roleId}/permissions/{permissionKey}', 'role_edit_controller:removePermission'); $controllers->get('/roles/{roleId}/labels/', 'role_controller:getRoleLabels'); $controllers->put('/roles/{roleId}/labels/{labelIdentifier}', 'role_edit_controller:addLabel'); $controllers->delete('/roles/{roleId}/labels/{labelIdentifier}', 'role_edit_controller:removeLabel'); $controllers->put('/roles/{roleId}/users/{userId}', 'role_edit_controller:addUser'); $controllers->delete('/roles/{roleId}/users/{userId}', 'role_edit_controller:removeUser'); $controllers->get('/users/{userId}/roles/', 'role_controller:getUserRoles'); $controllers->get('/user/roles/', 'role_controller:getCurrentUserRoles'); return $controllers; }
public function register(Application $app) { $app['translator'] = $app->share(function ($app) { $translator = new Translator($app, $app['translator.message_selector'], $app['translator.cache_dir'], $app['debug']); // Handle deprecated 'locale_fallback' if (isset($app['locale_fallback'])) { $app['locale_fallbacks'] = (array) $app['locale_fallback']; } $translator->setFallbackLocales($app['locale_fallbacks']); $translator->addLoader('array', new ArrayLoader()); $translator->addLoader('xliff', new XliffFileLoader()); foreach ($app['translator.domains'] as $domain => $data) { foreach ($data as $locale => $messages) { $translator->addResource('array', $messages, $locale, $domain); } } return $translator; }); $app['translator.message_selector'] = $app->share(function () { return new MessageSelector(); }); $app['translator.domains'] = array(); $app['locale_fallbacks'] = array('en'); $app['translator.cache_dir'] = null; }
public function register(Application $app) { $this->app = $app; $app['session.test'] = false; $app['session'] = $app->share(function ($app) { if (!isset($app['session.storage'])) { if ($app['session.test']) { $app['session.storage'] = $app['session.storage.test']; } else { $app['session.storage'] = $app['session.storage.native']; } } return new Session($app['session.storage']); }); $app['session.storage.handler'] = $app->share(function ($app) { return new NativeFileSessionHandler($app['session.storage.save_path']); }); $app['session.storage.native'] = $app->share(function ($app) { return new NativeSessionStorage($app['session.storage.options'], $app['session.storage.handler']); }); $app['session.storage.test'] = $app->share(function () { return new MockFileSessionStorage(); }); $app['session.storage.options'] = array(); $app['session.default_locale'] = 'en'; $app['session.storage.save_path'] = null; }
public function register(Application $app) { $app['logger'] = function () use($app) { return $app['monolog']; }; if ($bridge = class_exists('Symfony\\Bridge\\Monolog\\Logger')) { $app['monolog.handler.debug'] = function () use($app) { $level = MonologServiceProvider::translateLevel($app['monolog.level']); return new DebugHandler($level); }; } $app['monolog.logger.class'] = $bridge ? 'Symfony\\Bridge\\Monolog\\Logger' : 'Monolog\\Logger'; $app['monolog'] = $app->share(function ($app) { $log = new $app['monolog.logger.class']($app['monolog.name']); $log->pushHandler($app['monolog.handler']); if ($app['debug'] && isset($app['monolog.handler.debug'])) { $log->pushHandler($app['monolog.handler.debug']); } return $log; }); $app['monolog.handler'] = function () use($app) { $level = MonologServiceProvider::translateLevel($app['monolog.level']); return new StreamHandler($app['monolog.logfile'], $level, $app['monolog.bubble'], $app['monolog.permission']); }; $app['monolog.level'] = function () { return Logger::DEBUG; }; $app['monolog.listener'] = $app->share(function () use($app) { return new LogListener($app['logger']); }); $app['monolog.name'] = 'myapp'; $app['monolog.bubble'] = true; $app['monolog.permission'] = null; }
/** * {@inheritdoc} */ public function register(Application $app) { $app['email.support'] = '*****@*****.**'; $app['logger.message_generator'] = function () use($app) { $message = \Swift_Message::newInstance(); $message->setSubject('Error report from ' . $_SERVER['HTTP_HOST'])->setFrom($app['email.support'])->setTo($app['email.support']); return $message; }; $app['logger.swift_mailer_handler'] = $app->share(function ($app) { $handler = new SwiftMailerHandler($app['mailer'], $app['logger.message_generator'], Logger::DEBUG); $handler->setTransport($app['swiftmailer.transport']); return $handler; }); if (!$app['debug']) { if ($this->send_emails) { $app['monolog'] = $app->share($app->extend('monolog', function ($monolog, $app) { /** @var $monolog Logger */ $bufferHander = new BufferHandler($app['logger.swift_mailer_handler']); $fingersCrossedHandler = new FingersCrossedHandler($bufferHander, Logger::ERROR, 200); $monolog->pushHandler($fingersCrossedHandler); return $monolog; })); } } }
public function register(Application $app) { $app['task-manager.logger'] = $app->share(function (Application $app) { $logger = new $app['monolog.logger.class']('task-manager logger'); $logger->pushHandler(new NullHandler()); return $logger; }); $app['task-manager'] = $app->share(function (Application $app) { $options = $app['task-manager.listener.options']; $manager = TaskManager::create($app['dispatcher'], $app['task-manager.logger'], $app['task-manager.task-list'], ['listener_protocol' => $options['protocol'], 'listener_host' => $options['host'], 'listener_port' => $options['port'], 'tick_period' => 1]); $manager->addSubscriber($app['ws.task-manager.broadcaster']); return $manager; }); $app['task-manager.logger.configuration'] = $app->share(function (Application $app) { $conf = array_replace(['enabled' => true, 'level' => 'INFO', 'max-files' => 10], $app['conf']->get(['main', 'task-manager', 'logger'], [])); $conf['level'] = defined('Monolog\\Logger::' . $conf['level']) ? constant('Monolog\\Logger::' . $conf['level']) : Logger::INFO; return $conf; }); $app['task-manager.task-list'] = $app->share(function (Application $app) { $conf = $app['conf']->get(['registry', 'executables', 'php-conf-path']); $finder = new PhpExecutableFinder(); $php = $finder->find(); return new TaskList($app['EM']->getRepository('Phraseanet:Task'), $app['root.path'], $php, $conf); }); }
public function register(Application $app) { $app['nut'] = $app->share(function ($app) { $console = new NutApplication(); $console->setName('Bolt console tool - Nut'); if ($app instanceof \Bolt\Application) { $console->setVersion($app->getVersion()); } $console->addCommands($app['nut.commands']); return $console; }); $app['nut.commands'] = $app->share(function ($app) { return [new Nut\CronRunner($app), new Nut\CacheClear($app), new Nut\Info($app), new Nut\LogTrim($app), new Nut\LogClear($app), new Nut\DatabaseCheck($app), new Nut\DatabaseExport($app), new Nut\DatabaseImport($app), new Nut\DatabasePrefill($app), new Nut\DatabaseRepair($app), new Nut\TestRunner($app), new Nut\ConfigGet($app), new Nut\ConfigSet($app), new Nut\Extensions($app), new Nut\ExtensionsEnable($app), new Nut\ExtensionsDisable($app), new Nut\UserAdd($app), new Nut\UserResetPassword($app), new Nut\UserRoleAdd($app), new Nut\UserRoleRemove($app)]; }); $app['nut.commands.add'] = $app->protect(function (Command $command) use($app) { $app['nut.commands'] = $app->share($app->extend('nut.commands', function ($commands) use($command) { $commands[] = $command; return $commands; })); }); // Maintain backwards compatibility $app['console'] = $app->share(function ($app) { return $app['nut']; }); }
/** * {@inheritdoc} */ public function register(Application $app) { $app['application.speakers'] = $app->share(function ($app) { $userMapper = $app['spot']->mapper('OpenCFP\\Domain\\Entity\\User'); $talkMapper = $app['spot']->mapper('OpenCFP\\Domain\\Entity\\Talk'); $speakerRepository = new SpotSpeakerRepository($userMapper); return new Speakers(new CallForProposal(new \DateTime($app->config('application.enddate'))), new SentryIdentityProvider($app['sentry'], $speakerRepository), $speakerRepository, new SpotTalkRepository($talkMapper), new EventDispatcher()); }); $app['security.random'] = $app->share(function ($app) { return new PseudoRandomStringGenerator(new Factory()); }); $app['oauth.resource'] = $app->share(function ($app) { $sessionStorage = new SessionStorage(); $accessTokenStorage = new AccessTokenStorage(); $clientStorage = new ClientStorage(); $scopeStorage = new ScopeStorage(); $server = new ResourceServer($sessionStorage, $accessTokenStorage, $clientStorage, $scopeStorage); return $server; }); $app['application.speakers.api'] = $app->share(function ($app) { $userMapper = $app['spot']->mapper('OpenCFP\\Domain\\Entity\\User'); $talkMapper = $app['spot']->mapper('OpenCFP\\Domain\\Entity\\Talk'); $speakerRepository = new SpotSpeakerRepository($userMapper); return new Speakers(new CallForProposal(new \DateTime($app->config('application.enddate'))), new OAuthIdentityProvider($app['oauth.resource'], $speakerRepository), $speakerRepository, new SpotTalkRepository($talkMapper), new EventDispatcher()); }); }
/** * @inheritdoc */ public function register(Application $app) { $app['saved_searches_service_factory'] = $app->share(function ($app) { $consumer = new Consumer($app['config']['uitid']['base_url'], $app['culturefeed_consumer_credentials']); return new SavedSearchesServiceFactory($consumer); }); $app['saved_searches'] = $app->share(function (Application $app) { /* @var \CultuurNet\UDB3\SavedSearches\SavedSearchesServiceFactory $serviceFactory */ $serviceFactory = $app['saved_searches_service_factory']; $tokenCredentials = $app['culturefeed_token_credentials']; return $serviceFactory->withTokenCredentials($tokenCredentials); }); $app['saved_searches_logger'] = $app->share(function (Application $app) { $logger = new \Monolog\Logger('saved_searches'); $logger->pushHandler(new \Monolog\Handler\StreamHandler(__DIR__ . '/../../log/saved_searches.log')); return $logger; }); $app['saved_searches_repository'] = $app->share(function (Application $app) { $uitIDRepository = new UiTIDSavedSearchRepository($app['saved_searches']); $uitIDRepository->setLogger($app['saved_searches_logger']); $user = $app['current_user']; $fixedRepository = new FixedSavedSearchRepository($user); $repository = new CombinedSavedSearchRepository($fixedRepository, $uitIDRepository); return $repository; }); }
/** * @inheritdoc */ public function connect(Application $app) { $app['event_controller'] = $app->share(function (Application $app) { return new ReadEventRestController($app['event_service'], $app['event_history_repository']); }); $app['event_editing_controller'] = $app->share(function (Application $app) { return new EditEventRestController($app['event_service'], $app['event_editor'], $app['used_labels_memory'], $app['current_user'], $app['media_manager'], $app['event_iri_generator'], $app['offer.security']); }); /* @var ControllerCollection $controllers */ $controllers = $app['controllers_factory']; $controllers->get('event/{cdbid}', 'event_controller:get')->bind('event'); $controllers->delete('event/{cdbid}', 'event_editing_controller:deleteEvent'); $controllers->get('event/{cdbid}/history', 'event_controller:history')->bind('event-history'); $controllers->post('event', "event_editing_controller:createEvent"); $controllers->get('event/{cdbid}/permission', 'event_editing_controller:hasPermission'); $controllers->post('event/{itemId}/images', 'event_editing_controller:addImage'); $controllers->post('event/{itemId}/images/main', 'event_editing_controller:selectMainImage'); $controllers->post('event/{itemId}/images/{mediaObjectId}', 'event_editing_controller:updateImage'); $controllers->delete('event/{itemId}/images/{mediaObjectId}', 'event_editing_controller:removeImage'); $controllers->post('event/{cdbid}/nl/description', 'event_editing_controller:updateDescription'); $controllers->post('event/{cdbid}/typical-age-range', 'event_editing_controller:updateTypicalAgeRange'); $controllers->delete('event/{cdbid}/typical-age-range', 'event_editing_controller:deleteTypicalAgeRange'); $controllers->post('event/{cdbid}/major-info', 'event_editing_controller:updateMajorInfo'); $controllers->post('event/{cdbid}/bookingInfo', 'event_editing_controller:updateBookingInfo'); $controllers->post('event/{cdbid}/contactPoint', 'event_editing_controller:updateContactPoint'); $controllers->post('event/{cdbid}/organizer', 'event_editing_controller:updateOrganizer'); $controllers->delete('event/{cdbid}/organizer/{organizerId}', 'event_editing_controller:deleteOrganizer'); return $controllers; }
/** * {@inheritdoc} */ public function register(Application $app) { if (!isset($app['thumbnails'])) { $app->register(new Thumbs\ServiceProvider()); } $app['thumbnails.filesystems'] = ['files', 'themebase']; $app['thumbnails.filesystem_cache'] = $app->share(function ($app) { if (!$app['filesystem']->hasFilesystem('web')) { return null; } return $app['filesystem']->getFilesystem('web'); }); $app['thumbnails.cache'] = $app->share(function ($app) { return $app['cache']; }); $app['thumbnails.default_image'] = $app->share(function ($app) { $finder = new Thumbs\Finder($app['filesystem'], ['app', 'themebase', 'files'], new Image()); return $finder->find($app['config']->get('general/thumbnails/notfound_image')); }); $app['thumbnails.error_image'] = $app->share(function ($app) { $finder = new Thumbs\Finder($app['filesystem'], ['app', 'themebase', 'files'], new Image()); return $finder->find($app['config']->get('general/thumbnails/error_image')); }); $app['thumbnails.cache_time'] = $app['config']->get('general/thumbnails/browser_cache_time'); $app['thumbnails.limit_upscaling'] = !$app['config']->get('general/thumbnails/allow_upscale', false); $app['thumbnails.save_files'] = $app['config']->get('general/thumbnails/save_files'); ImageResource::setNormalizeJpegOrientation($app['config']->get('general/thumbnails/exif_orientation', true)); ImageResource::setQuality($app['config']->get('general/thumbnails/quality', 80)); }
/** * Registers this service on the given app * * @param Silex\Application $app Application instance * * @return void */ public function register(Application $app) { $app['rb'] = $app->share(function () use($app) { $options = $app['rb.options']; if ($namespace = isset($options['namespace']) ? $options['namespace'] : '') { $this->setModelNamespace($namespace); unset($options['namespace']); } $options = array_merge(array('dsn' => null, 'username' => null, 'password' => null, 'freeze' => false), $options); $rb = new RedBean($options); $logger = new Logger($app['logger']); $db = $rb->getDatabaseAdapter()->getDatabase(); $db->setLogger($logger); $db->setEnableLogging(true); if (isset($app['redbean.helpers']) && isset($app['redbean.model.helpers'])) { $modelHelper = new ModelHelper($app['redbean.helpers']); $modelHelper->attachEventListeners($rb->getRedBean()); foreach ($app['redbean.model.helpers'] as $model => $options) { $modelHelper->addModel($model, $options); } $app['redbean.model_helper'] = $app->share(function () use($modelHelper) { return $modelHelper; }); } return $rb; }); }
public function register(Application $app) { $app['cache.memcached'] = $app->share(function () use($app) { if (!class_exists('\\Doctrine\\Common\\Cache\\MemcachedCache')) { throw new \Exception('You need to include doctrine/common in order to use the cache service'); } $cache = new MemcachedCache(); $cache->setMemcached($app['memcached']); return $cache; }); $app['cache.predis'] = $app->share(function () use($app) { if (!class_exists('\\Doctrine\\Common\\Cache\\PredisCache')) { throw new \Exception('You need to include doctrine/common in order to use the cache service'); } return new PredisCache($app['predis.client']); }); $app['cache.predis_serializer'] = $app->share(function () use($app) { if (!class_exists('\\Doctrine\\Common\\Cache\\PredisCache')) { throw new \Exception('You need to include doctrine/common in order to use the cache service'); } return new SerializingPredisCache($app['predis.client']); }); $app['cache'] = $app->share(function () use($app) { if ($app->offsetExists('cache.default')) { return $app[$app['cache.default']]; } return $app['memcached']; }); }
/** * {@inheritdoc} */ public function register(Application $app) { $app['dump'] = $app->protect(function ($var) use($app) { if (!$app['debug']) { return; } $app['dumper']->dump($app['dumper.cloner']->cloneVar($var)); }); VarDumper::setHandler(function ($var) use($app) { /* * Referencing $app['dump'] in anonymous function * so the closure can be replaced in $app without * breaking the reference here. */ return $app['dump']($var); }); $app['dumper'] = $app->share(function ($app) { return PHP_SAPI === 'cli' ? $app['dumper.cli'] : $app['dumper.html']; }); $app['dumper.cli'] = $app->share(function () { return new CliDumper(); }); $app['dumper.html'] = $app->share(function () { return new HtmlDumper(); }); $app['dumper.cloner'] = $app->share(function () { $cloner = new VarCloner(); $cloner->addCasters(Caster\FilesystemCasters::getCasters()); return $cloner; }); }
protected function registerListener(Application $app) { $app['security.authentication_listener.factory.opauth'] = $app->protect(function ($name, $options) use($app) { $options = array_replace_recursive(array('check_path' => '/login/opauth', 'opauth' => array('path' => '/login/')), $options); if (!isset($app['security.authentication.success_handler.' . $name])) { $app['security.authentication.success_handler.' . $name] = $app['security.authentication.success_handler._proto']($name, $options); } if (!isset($app['security.authentication.failure_handler.' . $name])) { $app['security.authentication.failure_handler.' . $name] = $app['security.authentication.failure_handler._proto']($name, $options); } // define the authentication provider object if (!isset($app['security.authentication_provider.' . $name . '.opauth'])) { $app['security.authentication_provider.' . $name . '.opauth'] = $app->share(function () use($app, $name) { return new OpauthProvider($app['security.user_provider.' . $name]); }); } // define the authentication listener object if (!isset($app['security.authentication_listener.' . $name . '.opauth'])) { $app['security.authentication_listener.' . $name . '.opauth'] = $app->share(function () use($app, $name, $options) { return new OpauthListener($app['security'], $app['security.authentication_manager'], isset($app['security.session_strategy.' . $name]) ? $app['security.session_strategy.' . $name] : $app['security.session_strategy'], $app['security.http_utils'], $name, $app['security.authentication.success_handler.' . $name], $app['security.authentication.failure_handler.' . $name], $options, $app['logger'], $app['dispatcher']); }); } // routes // $this->onBoot[] = function() use ($app, $options, $name) { $bindName = "opauth_{$name}_"; $app->match($options['check_path'], function () { })->bind($bindName . 'check'); $app->match($options['opauth']['path'] . '{strategy}/{return}', function () { })->value('return', '')->bind($bindName . 'login'); // }; return array('security.authentication_provider.' . $name . '.opauth', 'security.authentication_listener.' . $name . '.opauth', null, 'pre_auth'); }); }
public function register(Application $app) { //Load Doctrine Configuration $app['db.configuration'] = $app->share(function () use($app) { AnnotationRegistry::registerAutoloadNamespace("Doctrine\\ORM\\Mapping", __DIR__ . '/../../../../../doctrine/orm/lib'); $config = new ORMConfiguration(); $cache = $app['debug'] == false ? new ApcCache() : new ArrayCache(); $config->setMetadataCacheImpl($cache); $config->setQueryCacheImpl($cache); $chain = new DriverChain(); foreach ((array) $app['db.orm.entities'] as $entity) { switch ($entity['type']) { case 'annotation': $reader = new AnnotationReader(); $driver = new AnnotationDriver($reader, (array) $entity['path']); $chain->addDriver($driver, $entity['namespace']); break; /*case 'yml': $driver = new YamlDriver((array)$entity['path']); $driver->setFileExtension('.yml'); $chain->addDriver($driver, $entity['namespace']); break; case 'xml': $driver = new XmlDriver((array)$entity['path'], $entity['namespace']); $driver->setFileExtension('.xml'); $chain->addDriver($driver, $entity['namespace']); break;*/ /*case 'yml': $driver = new YamlDriver((array)$entity['path']); $driver->setFileExtension('.yml'); $chain->addDriver($driver, $entity['namespace']); break; case 'xml': $driver = new XmlDriver((array)$entity['path'], $entity['namespace']); $driver->setFileExtension('.xml'); $chain->addDriver($driver, $entity['namespace']); break;*/ default: throw new \InvalidArgumentException(sprintf('"%s" is not a recognized driver', $type)); break; } } $config->setMetadataDriverImpl($chain); $config->setProxyDir($app['db.orm.proxies_dir']); $config->setProxyNamespace($app['db.orm.proxies_namespace']); $config->setAutoGenerateProxyClasses($app['db.orm.auto_generate_proxies']); return $config; }); //Set Defaut Configuration $defaults = array('entities' => array(array('type' => 'annotation', 'path' => 'Entity', 'namespace' => 'Entity')), 'proxies_dir' => 'cache/doctrine/Proxy', 'proxies_namespace' => 'DoctrineProxy', 'auto_generate_proxies' => true); foreach ($defaults as $key => $value) { if (!isset($app['db.orm.' . $key])) { $app['db.orm.' . $key] = $value; } } $self = $this; $app['db.orm.em'] = $app->share(function () use($self, $app) { return EntityManager::create($app['db'], $app['db.configuration']); }); }
/** * Register * * @param Application $app [description] * * @return void */ public function register(Application $app) { $app['nn.markdown'] = $app->share(function () { return new Markdown(); }); if (isset($app["twig"])) { $app['twig'] = $app->share($app->extend('twig', function (\Twig_Environment $twig, Application $app) { $filterParse = new \Twig_SimpleFilter('markdown_parse', function ($text) use($app) { return $app['nn.markdown']->parse($text); }, array('is_safe' => array('html'))); $twig->addFilter($filterParse); $filterParseFile = new \Twig_SimpleFilter('markdown_parse_file', function ($filename) use($app) { return $app['nn.markdown']->parseFile($filename); }, array('is_safe' => array('html'))); $fucntionParseLastFile = new \Twig_SimpleFunction('markdown_parse_last_file', function () use($app) { $content = ""; $finderLast = $app['nn.markdown']->getNLastFiles(1); foreach ($finderLast as $file) { $content = $file->getContents(); } return $app['nn.markdown']->parse($content); }, array('is_safe' => array('html'))); $twig->addFilter($filterParse); $twig->addFilter($filterParseFile); $twig->addFunction($fucntionParseLastFile); return $twig; })); } }
public function register(Application $app) { $app['storage.legacy'] = $app->share(function ($app) { return new Storage($app); }); $app['storage'] = $app->share(function ($app) { $storage = new EntityManager($app['db'], $app['dispatcher'], $app['storage.metadata'], $app['logger.system']); $storage->setLegacyStorage($app['storage.legacy']); foreach ($app['storage.repositories'] as $entity => $repo) { $storage->setRepository($entity, $repo); } $storage->setDefaultRepositoryFactory(function ($classMetadata) use($app) { $repoClass = $app['storage.repository.default']; $repo = new $repoClass($app['storage'], $classMetadata); return $repo; }); return $storage; }); $app['storage.repository.default'] = 'Bolt\\Storage\\Repository\\ContentRepository'; $app['storage.typemap'] = ['Doctrine\\DBAL\\Types\\StringType' => 'Bolt\\Storage\\Field\\Type\\TextType', 'Doctrine\\DBAL\\Types\\IntegerType' => 'Bolt\\Storage\\Field\\Type\\IntegerType', 'Doctrine\\DBAL\\Types\\FloatType' => 'Bolt\\Storage\\Field\\Type\\FloatType', 'Doctrine\\DBAL\\Types\\TextType' => 'Bolt\\Storage\\Field\\Type\\TextAreaType', 'Doctrine\\DBAL\\Types\\DateType' => 'Bolt\\Storage\\Field\\Type\\DateType', 'Doctrine\\DBAL\\Types\\DateTimeType' => 'Bolt\\Storage\\Field\\Type\\DateTimeType', 'checkbox' => 'Bolt\\Storage\\Field\\Type\\CheckboxType', 'date' => 'Bolt\\Storage\\Field\\Type\\DateType', 'datetime' => 'Bolt\\Storage\\Field\\Type\\DateTimeType', 'file' => 'Bolt\\Storage\\Field\\Type\\FileType', 'filelist' => 'Bolt\\Storage\\Field\\Type\\FileListType', 'float' => 'Bolt\\Storage\\Field\\Type\\FloatType', 'geolocation' => 'Bolt\\Storage\\Field\\Type\\GeolocationType', 'html' => 'Bolt\\Storage\\Field\\Type\\HtmlType', 'image' => 'Bolt\\Storage\\Field\\Type\\ImageType', 'imagelist' => 'Bolt\\Storage\\Field\\Type\\ImageListType', 'integer' => 'Bolt\\Storage\\Field\\Type\\IntegerType', 'markdown' => 'Bolt\\Storage\\Field\\Type\\MarkdownType', 'relation' => 'Bolt\\Storage\\Field\\Type\\RelationType', 'repeater' => 'Bolt\\Storage\\Field\\Type\\RepeaterType', 'select' => 'Bolt\\Storage\\Field\\Type\\SelectType', 'slug' => 'Bolt\\Storage\\Field\\Type\\SlugType', 'taxonomy' => 'Bolt\\Storage\\Field\\Type\\TaxonomyType', 'templateselect' => 'Bolt\\Storage\\Field\\Type\\TemplateSelectType', 'text' => 'Bolt\\Storage\\Field\\Type\\TextType', 'textarea' => 'Bolt\\Storage\\Field\\Type\\TextAreaType', 'video' => 'Bolt\\Storage\\Field\\Type\\VideoType']; $app['storage.repositories'] = ['Bolt\\Storage\\Entity\\Authtoken' => 'Bolt\\Storage\\Repository\\AuthtokenRepository', 'Bolt\\Storage\\Entity\\Cron' => 'Bolt\\Storage\\Repository\\CronRepository', 'Bolt\\Storage\\Entity\\LogChange' => 'Bolt\\Storage\\Repository\\LogChangeRepository', 'Bolt\\Storage\\Entity\\LogSystem' => 'Bolt\\Storage\\Repository\\LogSystemRepository', 'Bolt\\Storage\\Entity\\Users' => 'Bolt\\Storage\\Repository\\UsersRepository']; $app['storage.metadata'] = $app->share(function ($app) { $meta = new MetadataDriver($app['schema'], $app['config']->get('contenttypes'), $app['config']->get('taxonomy'), $app['storage.typemap']); return $meta; }); $app['storage.record_modifier'] = $app->share(function ($app) { $cm = new RecordModifier($app); return $cm; }); $app['storage.listener'] = $app->share(function () use($app) { return new StorageEventListener($app['storage'], $app['authentication.hash.strength']); }); }
/** * Registers services on the given app. * * This method should only be used to configure services and parameters. * It should not get services. * * @param Application $app An Application instance */ public function register(Application $app) { if (!isset($app['locales_allowed'])) { throw new \RuntimeException('No locales are specified in your config'); } if (!isset($app['em'])) { throw new \RuntimeException('No entity manager has been settled'); } if (!isset($app['ip2locale.ip2country_manager'])) { $app['ip2locale.ip2country_manager'] = $app->share(function () use($app) { return new IP2CountryManager($app['em']); }); } if (isset($app['ip2locale.ip2country_manager_enabled'])) { $app['ip2locale.ip2country_manager']->setEnabled($app['ip2locale.ip2country_manager_enabled']); } if (isset($app['ip2locale.ipv6_enabled'])) { $app['ip2locale.ip2country_manager']->setIpv6Enabled($app['ip2locale.ipv6_enabled']); } if (!isset($app['ip2locale.language_detector'])) { $app['ip2locale.language_detector'] = $app->share(function () use($app) { return new LanguageDetector(); }); } if (isset($app['ip2locale.language_detector_enabled'])) { $app['ip2locale.language_detector']->setEnabled($app['ip2locale.language_detector_enabled']); } if (!isset($app['ip2locale.locator'])) { $app['ip2locale.locator'] = $app->share(function () use($app) { return new IPLocator($app['ip2locale.ip2country_manager'], $app['ip2locale.language_detector'], $app['locales_allowed']); }); } }
/** * {@inheritdoc} */ public function register(BaseApplication $app) { $app['translator']->addResource('yaml', __DIR__ . '/../Resource/locale/message.ja.yml', 'ja'); $app['config'] = $app->share($app->extend('config', function ($config) { foreach ($config['nav'] as $key => $menu1) { if ($menu1['id'] == 'setting') { $children = $menu1['child']; foreach ($children as $key2 => $menu2) { if ($menu2['id'] == 'system') { $config['nav'][$key]['child'][$key2]['has_child'] = 'true'; $config['nav'][$key]['child'][$key2]['child'][] = array('id' => 'admin_maintenance_manager', 'name' => 'メンテナンス管理', 'url' => 'admin_maintenance_manager'); break; } } } } return $config; })); $app['form.types'] = $app->share($app->extend('form.types', function ($types) use($app) { $types[] = new \Plugin\MaintenanceManager\Form\Type\MaintenanceType($app); return $types; })); $app['plg.service.maintenance_manager'] = $app->share(function () use($app) { return new \Plugin\MaintenanceManager\Service\MaintenanceManagerService($app); }); $url = '/' . $app["config"]["admin_route"] . '/MaintenanceManager'; $app->match($url . '/config', '\\Plugin\\MaintenanceManager\\Controller\\ConfigController::index')->bind('admin_maintenance_manager'); // $app->match($url . '/enable', '\Plugin\MaintenanceManager\Controller\ConfigController::enable')->bind('admin_maintenance_manager_enable'); // $app->match($url . '/disable', '\Plugin\MaintenanceManager\Controller\ConfigController::diable')->bind('admin_maintenance_manager_disable'); }
public function addPimpleResources() { $this->silex['paths'] = $this->silex->share(function () { return new Paths(); }); $this->silex['application-env'] = getenv('APPLICATION_ENV'); $this->silex['debug'] = 'development' === $this->silex['application-env'] ? true : false; $this->silex->register(new MonologServiceProvider(), ['monolog.logfile' => $this->silex['paths']->getAppRoot() . '/logs/' . $this->silex['application-env'] . '.log', 'monolog.level' => Logger::WARNING]); $this->silex['view'] = function () { $view = new View(); $view->registerHelper('inputtext', '\\Dewdrop\\View\\Helper\\BootstrapInputText')->registerHelper('select', '\\Dewdrop\\View\\Helper\\BootstrapSelect')->registerHelper('textarea', '\\Dewdrop\\View\\Helper\\BootstrapTextarea'); return $view; }; $this->silex['admin'] = $this->silex->share(function () { $admin = new SilexAdmin($this->silex); return $admin; }); $this->silex['config'] = $this->silex->share(function () { $config = new Config(); if (!$config->has($this->silex['application-env'])) { return $config->get('development'); } return $config->get($this->silex['application-env']); }); $this->silex['db'] = $this->silex->share(function () { $config = $this->silex['config']; $pdo = new PDO('pgsql:dbname=' . $config['db']['name'] . ';host=' . $config['db']['host'], $config['db']['username'], $config['db']['password']); $adapter = new DbAdapter(); new Pgsql($adapter, $pdo); return $adapter; }); }
public function register(Application $app) { $app['lexik_form_filter.query_builder_updater'] = $app->share(function ($app) { $frmDataExt = $app['lexik_form_filter.form_data_extractor']; $dispatcher = $app['dispatcher']; return new FilterBuilderUpdater($frmDataExt, $dispatcher); }); $app['lexik_form_filter.form_data_extractor'] = $app->share(function ($app) { $formDataExtractor = new FormDataExtractor(); $formDataExtractor->addMethod(new DefaultExtractionMethod()); $formDataExtractor->addMethod(new TextExtractionMethod()); $formDataExtractor->addMethod(new ValueKeysExtractionMethod()); if ($app->offsetExists('form-filter.data_extraction_methods')) { foreach ($app['form-filter.data_extraction_methods'] as $extMethod) { $formDataExtractor->addMethod($extMethod); } } return $formDataExtractor; }); $app['form.extensions'] = $app->share($app->extend('form.extensions', function ($extensions) use($app) { $extensions[] = new FilterExtension(); return $extensions; })); $app['dispatcher']->addListener(FilterEvents::PREPARE, array(new PrepareListener(), 'onFilterBuilderPrepare')); $app['dispatcher']->addSubscriber(new DoctrineSubscriber()); }
public function register(Application $app) { $app['facebook'] = $app->share(function () use($app) { return new Facebook(array('app_id' => $app['facebook.config']['app_id'], 'app_secret' => $app['facebook.config']['app_secret'], 'default_graph_version' => 'v2.5')); }); $app['facebook.config'] = $app->share(function () use($app) { return array('app_id' => (string) $app['config']['social']['facebook']['app_id'], 'app_secret' => (string) $app['config']['social']['facebook']['app_secret']); }); $app['facebook.login_url'] = $app->share(function () use($app) { return $app['facebook']->getRedirectLoginHelper()->getLoginUrl($app['url_generator']->generate('socialauth', array('name' => 'facebook'), UrlGeneratorInterface::ABSOLUTE_URL), array('email')); }); $app['facebook.access_token'] = $app->share(function () use($app) { $accessToken = $app['facebook']->getRedirectLoginHelper()->getAccessToken(); $oAuth2Client = $app['facebook']->getOAuth2Client(); $tokenMetadata = $oAuth2Client->debugToken($accessToken); $tokenMetadata->validateAppId($app['facebook.config']['app_id']); $tokenMetadata->validateExpiration(); if (!$accessToken->isLongLived()) { $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } return $accessToken; }); $app['facebook.user'] = $app->share(function () use($app) { $app['facebook']->setDefaultAccessToken($app['facebook.access_token']); $response = $app['facebook']->get('/me?fields=name,email'); return $response->getGraphUser(); }); }
/** * Registers services on the given app. * * This method should only be used to configure services and parameters. * It should not get services. * * @param Application $app */ public function register(Application $app) { $app['serializer.metadata_dirs'] = []; $app['serializer.stopwatch_subscriber'] = $app->share(function () use($app) { return new StopwatchEventSubscriber($app['stopwatch']); }); $app['serializer.doctrine_object_deserialize_listener'] = $app->share(function () use($app) { return new DoctrineObjectDeserializeListener($app['doctrine']); }); $app['serializer.builder'] = $app->share(function () use($app) { $builder = SerializerBuilder::create(); $builder->setDebug($app['debug']); $builder->setObjectConstructor(new DoctrineObjectConstructor($app['doctrine'], new UnserializeObjectConstructor())); if (isset($app['serializer.cache_dir'])) { $builder->setCacheDir($app['serializer.cache_dir']); } if (isset($app['serializer.metadata_dirs'])) { $builder->setMetadataDirs($app['serializer.metadata_dirs']); } $builder->configureListeners(function (EventDispatcher $dispatcher) use($app) { $dispatcher->addSubscriber($app['serializer.doctrine_object_deserialize_listener']); }); if (isset($app['stopwatch'])) { $builder->configureListeners(function (EventDispatcher $dispatcher) use($app) { $dispatcher->addSubscriber($app['serializer.stopwatch_subscriber']); }); } return $builder; }); $app['serializer'] = $app->share(function () use($app) { return $app['serializer.builder']->build(); }); }
/** * {@inheritdoc} */ public function register(Application $app) { // Parameters $app['ewz_recaptcha.public_key'] = null; $app['ewz_recaptcha.private_key'] = null; $app['ewz_recaptcha.locale_key'] = $app['locale']; $app['ewz_recaptcha.enabled'] = true; $app['ewz_recaptcha.ajax'] = false; // add loader for EWZ Template if (isset($app['twig'])) { $path = dirname(__FILE__) . '/../Resources/views/Form'; $app['twig.loader']->addLoader(new \Twig_Loader_Filesystem($path)); $app['twig.form.templates'] = array_merge($app['twig.form.templates'], array('ewz_recaptcha_widget.html.twig')); } // Register recaptcha form type if (isset($app['form.extensions'])) { $app['form.extensions'] = $app->share($app->extend('form.extensions', function ($extensions) use($app) { $extensions[] = new Form\Extension\RecaptchaExtension($app); return $extensions; })); } // Register recaptcha validator constraint if (isset($app['validator.validator_factory'])) { $app['ewz_recaptcha.true'] = $app->share(function ($app) { $validator = new TrueValidator($app['ewz_recaptcha.enabled'], $app['ewz_recaptcha.private_key'], $app['request_stack']); return $validator; }); $app['validator.validator_service_ids'] = isset($app['validator.validator_service_ids']) ? $app['validator.validator_service_ids'] : array(); $app['validator.validator_service_ids'] = array_merge($app['validator.validator_service_ids'], array('ewz_recaptcha.true' => 'ewz_recaptcha.true')); } // Register translation files if (isset($app['translator'])) { $app['translator']->addResource('xliff', dirname(__FILE__) . '/../Resources/translations/validators.' . $app['locale'] . '.xlf', $app['locale'], 'validators'); } }
public function register(BaseApplication $app) { // リポジトリ $app['eccube.plugin.product_rank.repository.product_rank'] = $app->share(function () use($app) { return new ProductRankRepository($app['orm.em'], $app['orm.em']->getClassMetadata('\\Eccube\\Entity\\ProductCategory'), $app); }); $basePath = '/' . $app["config"]["admin_route"]; // 一覧 $app->match($basePath . '/product/product_rank/', '\\Plugin\\ProductRank\\Controller\\ProductRankController::index')->bind('admin_product_product_rank'); // 一覧:上 $app->put($basePath . '/product/product_rank/{category_id}/{product_id}/up', '\\Plugin\\ProductRank\\Controller\\ProductRankController::up')->assert('category_id', '\\d+')->assert('product_id', '\\d+')->bind('admin_product_product_rank_up'); // 一覧:下 $app->put($basePath . '/product/product_rank/{category_id}/{product_id}/down', '\\Plugin\\ProductRank\\Controller\\ProductRankController::down')->assert('category_id', '\\d+')->assert('product_id', '\\d+')->bind('admin_product_product_rank_down'); // 一覧:N番目へ移動 $app->post($basePath . '/product/product_rank/moveRank', '\\Plugin\\ProductRank\\Controller\\ProductRankController::moveRank')->assert('category_id', '\\d+')->assert('product_id', '\\d+')->assert('position', '\\d+')->bind('admin_product_product_rank_move_rank'); // カテゴリ選択 $app->match($basePath . '/product/product_rank/{category_id}', '\\Plugin\\ProductRank\\Controller\\ProductRankController::index')->assert('category_id', '\\d+')->bind('admin_product_product_rank_show'); // メッセージ登録 $app['translator'] = $app->share($app->extend('translator', function ($translator, \Silex\Application $app) { $translator->addLoader('yaml', new \Symfony\Component\Translation\Loader\YamlFileLoader()); $file = __DIR__ . '/../Resource/locale/message.' . $app['locale'] . '.yml'; if (file_exists($file)) { $translator->addResource('yaml', $file, $app['locale']); } return $translator; })); // メニュー登録 $app['config'] = $app->share($app->extend('config', function ($config) { $addNavi['id'] = "product_rank"; $addNavi['name'] = "商品並び替え"; $addNavi['url'] = "admin_product_product_rank"; self::addNavi($config['nav'], $addNavi, array('product')); return $config; })); }
/** * {@inheritdoc} */ public function register(Application $app) { Analyzer::setDefault(new CaseInsensitive()); QueryParser::setDefaultEncoding('UTF-8'); $app['zendsearch.indices_path'] = array(); $app['zendsearch.indices.initializer'] = $app->protect(function () use($app) { static $initialized = false; if ($initialized) { return; } $initialized = true; $indices = array(); foreach ($app['zendsearch.indices_path'] as $name => $index) { $indices[$name] = file_exists($index) ? Lucene::open($index) : Lucene::create($index); } $app['zendsearch.indices_collection'] = $indices; }); $app['zendsearch.indices'] = $app->share(function ($app) { $app['zendsearch.indices.initializer'](); return $app['zendsearch.indices_collection']; }); $app['zendsearch.multisearcher'] = $app->share(function ($app) { $app['zendsearch.indices.initializer'](); $multi = new MultiSearcher(); foreach ($app['zendsearch.indices'] as $index) { $multi->addIndex($index); } return $multi; }); $app['zendsearch'] = $app->share(function ($app) { return $app['zendsearch.multisearcher']; }); }
public function register(Application $app) { $app['controllers_factory'] = function ($app) { return new ControllerCollection($app['route_factory']); }; $app['url_matcher'] = $app->share(function ($app) { return new UrlMatcher($app['routes'], $app['request_context']); }); $app['resolver'] = $app->share(function ($app) { return new ControllerResolver($app, $app['logger']); }); $app['callback_resolver'] = $app->share(function ($app) { return new CallbackResolver($app, $app['controller.classmap']); }); $app['route_factory'] = $app->extend('route_factory', function (Route $route, $app) { if ($app['config']->get('general/enforce_ssl')) { $route->requireHttps(); } return $route; }); $app['url_generator.lazy'] = $app->share(function ($app) { return new LazyUrlGenerator(function () use($app) { return $app['url_generator']; }); }); }