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')); }); }
/** * {@inheritdoc} */ public function register(Application $app) { // Load defaults foreach ($this->settings as $key => $value) { $key = 'captcha.' . $key; if (!isset($app[$key])) { $app[$key] = $value; } } // Instance of builder $app['captcha.builder'] = $app->share(function (Application $app) { return new CaptchaBuilder($app['captcha.phrase'], $app['captcha.phrase_builder']); }); // Checks captcha $app['captcha.test'] = $app->protect(function ($phrase) use($app) { /** @var $builder CaptchaBuilder */ $builder = $app['captcha.builder']; /** @var $session Session */ $session = $app['session']; $builder->setPhrase($session->get($app['captcha.session_key'])); return $builder->testPhrase($phrase); }); // Returns absolute URL to the image $app['captcha.image_url'] = $app->protect(function () use($app) { /** @var $urlGenerator UrlGenerator */ $urlGenerator = $app['url_generator']; return $urlGenerator->generate($app['captcha.route_name'], array(), UrlGenerator::ABSOLUTE_URL); }); }
function register(Application $app) { $this->app = $app; $this->log = $app['monolog']; $this->session = $app['session']; $this->url_generator = $app['url_generator']; $app['jira.request_token_url'] = $this->getAbsoluteURL('request_token'); $app['jira.authorization_url'] = $this->getAbsoluteURL('authorization'); $app['jira.access_token_url'] = $this->getAbsoluteURL('access_token'); $app['jira.oauth.client'] = $app->share(function () use($app) { if (is_null($this->session->get('oauth'))) { $this->log->addError('Jira OAuth client is not initialized correctly.' . 'Please create valid credentials first.'); throw new \Exception('Jira OAuth client is not initialized'); } $app['jira.token'] = $this->session->get('oauth'); $oauth = $this->getOAuth(); return $this->getClient($oauth); }); $app['jira.oauth.temp_credentials'] = $app->protect(function ($redirect = null) { return $this->requestTempCredentials($redirect); }); $app['jira.oauth.auth_credentials'] = $app->protect(function ($redirect = null) { return $this->requestAuthCredentials($redirect); }); $app['jira.oauth.auth_url'] = $app->share(function () { return $this->makeAuthUrl(); }); $app['jira.default_redirect'] = $app->share(function () { return $this->url_generator->generate($this->config['route_name.default_redirect']); }); $app['jira.controller.provider'] = $app->share(function () { return new JiraOAuthControllerProvider(); }); }
public function register(Application $app) { $config = $this->config; $app['user'] = null; $app['devture_user.roles'] = $config['roles']; $app['devture_user.db'] = $app->share(function ($app) use($config) { return $app[$config['database_service_id']]; }); if ($config['database_type'] === 'relational') { $app['devture_user.repository'] = $app->share(function ($app) { return new Repository\Relational\UserRepository($app['devture_user.db']); }); } else { if ($config['database_type'] === 'mongodb') { $app['devture_user.repository'] = $app->share(function ($app) { return new Repository\MongoDB\UserRepository($app['devture_user.db']); }); } else { throw new \InvalidArgumentException('Unrecognized database type: ' . $config['database_type']); } } $app['devture_user.password_encoder'] = $app->share(function ($app) use($config) { return new Helper\PasswordEncoder($config['blowfish_cost']); }); $app['devture_user.auth_helper'] = $app->share(function ($app) use($config) { return new Helper\AuthHelper($app['devture_user.repository'], $app['devture_user.password_encoder'], $config['password_token_salt']); }); $app['devture_user.login_manager'] = $app->share(function ($app) use($config) { return new Helper\LoginManager($app['devture_user.auth_helper'], $config['cookie_signing_secret'], $config['cookie_path']); }); $app['devture_user.access_control'] = $app->share(function ($app) { return new AccessControl\AccessControl($app); }); $app['devture_user.validator'] = function ($app) { return new Validator\UserValidator($app['devture_user.repository'], $app['devture_user.roles']); }; $app['devture_user.form_binder'] = function ($app) { $binder = new Form\FormBinder($app['devture_user.validator'], $app['devture_user.password_encoder']); $binder->setCsrfProtection($app['devture_framework.csrf_token_manager'], 'user'); return $binder; }; $app['devture_user.listener.user_from_request_initializer'] = $app->protect(function (Request $request) use($app) { $app['user'] = $app['devture_user.login_manager']->createUserFromRequest($request); }); $app['devture_user.listener.csrf_token_manager_salter'] = $app->protect(function (Request $request) use($app) { if ($app['user'] instanceof Model\User) { $app['devture_framework.csrf_token_manager']->setSalt($app['user']->getUsername()); } }); $app['devture_user.listener.conditional_session_extender'] = $app->protect(function (Request $request, Response $response) use($app) { if ($app['user'] instanceof Model\User) { $app['devture_user.login_manager']->extendSessionIfNeeded($app['user'], $request, $response); } }); $app['devture_user.twig.user_extension'] = $app->share(function ($app) { return new Twig\UserExtension($app['devture_user.access_control'], $app); }); $this->registerConsoleServices($app); $this->registerControllerServices($app); }
/** * 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) { /** * Add closures for getting all the Codebender URLs we need to know. */ $app['codebender'] = $app->protect(function ($uri) { return sprintf('%s/%s', $this->codebender_url, ltrim($uri, '/')); }); $app['codebender.builder'] = $app->protect(function () use($app) { return $this->builder_url; }); /** * Add closures for performing requests against Codebender URLs. */ $app['codebender.get'] = $app->protect(function ($url) use($app) { $client = new Client(); $response = $client->get($url); return $response->getBody(); }); $app['codebender.post'] = $app->protect(function ($url, $json) use($app) { $client = new Client(); $response = $client->post($url, ['body' => $json]); return $response->getBody(); }); }
/** * {@inheritDoc} */ public function register(Application $app) { $keyLoader = $this->keyLoader; $app['security.authentication_listener.factory.hmac'] = $app->protect(function ($name, $options) use($app) { if (!isset($app['security.authentication_provider.' . $name . '.hmac'])) { $app['security.authentication_provider.' . $name . '.hmac'] = $app['security.authentication_provider.hmac._proto']($name, $options); } if (!isset($app['security.authentication_listener.' . $name . '.hmac'])) { $app['security.authentication_listener.' . $name . '.hmac'] = $app['security.authentication_listener.hmac._proto']($name, $options); } if (!isset($app['security.entry_point.' . $name . '.hmac'])) { $app['security.entry_point.' . $name . '.hmac'] = $app['security.entry_point.hmac._proto']($name, $options); } return ['security.authentication_provider.' . $name . '.hmac', 'security.authentication_listener.' . $name . '.hmac', 'security.entry_point.' . $name . '.hmac', 'pre_auth']; }); $app['security.hmac.response_listener'] = $app->share(function () { return new HmacResponseListener(); }); $app['security.authentication_provider.hmac._proto'] = $app->protect(function ($name, $options) use($app, $keyLoader) { return $app->share(function () use($keyLoader) { return new HmacAuthenticationProvider(new RequestAuthenticator($keyLoader)); }); }); $app['security.authentication_listener.hmac._proto'] = $app->protect(function ($name, $options) use($app) { return $app->share(function () use($app, $name) { return new HmacAuthenticationListener($app['security.token_storage'], $app['security.authentication_manager'], $app['security.entry_point.' . $name . '.hmac']); }); }); $app['security.entry_point.hmac._proto'] = $app->protect(function ($name, $options) use($app) { return new HmacAuthenticationEntryPoint(); }); }
/** * @param Application $app */ public function register(Application $app) { // define the authentication listener object $app['security.authentication_listener.wordpress._proto'] = $app->protect(function ($providerKey, $options) use($app) { return $app->share(function () use($app, $providerKey, $options) { return new Security\WordpressListener($app['security'], $app['security.authentication_manager'], $options['document_root'], $app['php.wordpress36.bootstrap'], $app['logger']); }); }); // define the authentication provider object $app['security.authentication_provider.wordpress._proto'] = $app->protect(function ($name) use($app) { return $app->share(function () use($app, $name) { return new Security\WordpressAuthenticationProvider(); }); }); $type = 'wordpress'; $entryPoint = null; $app['security.authentication_listener.factory.' . $type] = $app->protect(function ($name, $options) use($type, $app, $entryPoint) { if ($entryPoint && !isset($app['security.entry_point.' . $name . '.' . $entryPoint])) { $app['security.entry_point.' . $name . '.' . $entryPoint] = $app['security.entry_point.' . $entryPoint . '._proto']($name, $options); } if (!isset($app['security.authentication_listener.' . $name . '.' . $type])) { $app['security.authentication_listener.' . $name . '.' . $type] = $app['security.authentication_listener.' . $type . '._proto']($name, $options); } $provider = 'wordpress'; if (!isset($app['security.authentication_provider.' . $name . '.' . $provider])) { $app['security.authentication_provider.' . $name . '.' . $provider] = $app['security.authentication_provider.' . $type . '._proto']($name); } return array('security.authentication_provider.' . $name . '.' . $provider, 'security.authentication_listener.' . $name . '.' . $type, $entryPoint ? 'security.entry_point.' . $name . '.' . $entryPoint : null, 'pre_auth'); }); }
/** * Registers services on the given app. * * This method should only be used to configure services and parameters. * It should not get services. */ public function register(Application $app) { $app['security.jwt_retrieval.authorization_bearer.strategy'] = $app->share(function () { return new AuthorizationBearerStrategy(); }); $app['security.jwt_retrieval.query_parameter.strategy'] = $app->share(function () { return new QueryParameterStrategy(); }); $app['security.jwt_retrieval.chain.strategy'] = $app->share(function () use($app) { return new ChainStrategy([$app['security.jwt_retrieval.authorization_bearer.strategy'], $app['security.jwt_retrieval.query_parameter.strategy']]); }); $app['security.entry_point.jwt._proto'] = $app->protect(function () use($app) { return $app->share(function () { return new JWTAuthenticationEntryPoint(); }); }); $app['security.authentication_listener.factory.jwt'] = $app->protect(function ($name, $options) use($app) { $app['security.authentication_provider.' . $name . '.jwt'] = $app->share(function () use($app, $options) { $encoder = new JWTEncoder($options['secret_key'], reset($options['allowed_algorithms'])); $decoder = new JWTDecoder($options['secret_key'], $options['allowed_algorithms']); $converter = new SecurityUserConverter(); $userBuilder = new JWTUserBuilder($decoder, $encoder, $converter); return new JWTAuthenticationProvider($userBuilder); }); $app['security.authentication_listener.' . $name . '.jwt'] = $app->share(function () use($app, $name, $options) { $strategyName = isset($options['retrieval_strategy']) ? $options['retrieval_strategy'] : 'authorization_bearer'; return new JWTListener($app['security.token_storage'], $app['security.authentication_manager'], $app['security.jwt_retrieval.' . $strategyName . '.strategy']); }); $app['security.entry_point.' . $name . '.jwt'] = $app['security.entry_point.jwt._proto']($name, $options); return array('security.authentication_provider.' . $name . '.jwt', 'security.authentication_listener.' . $name . '.jwt', 'security.entry_point.' . $name . '.jwt', 'pre_auth'); }); }
public function register(Application $app) { $app['app.usuarios.insert'] = $app->protect(function ($data) { return $this->insert($data); }); $app['app.usuarios.find'] = $app->protect(function ($data) { return $this->find($data); }); }
public function register(Application $app) { $app['logger.class'] = '\\Dafiti\\Silex\\Log\\Logger'; $app['logger.create'] = $app->protect(function ($name, $level = 'debug', array $handlers = [], array $processors = []) use($app) { $logger = new $app['logger.class']($name); $level = $logger->translateLevel($level); if (empty($handlers)) { $stream = sprintf('%s/%s.log', $app['logger.log_folder'], $name); $handlers = [new StreamHandler($stream, $level, $app['logger.bubble'], $app['logger.permission'])]; } foreach ($handlers as $handler) { $logger->pushHandler($handler); } foreach ($processors as $processor) { $logger->pushProcessor($processor); } $app['logger.manager']->add($logger); return $logger; }); $app['logger.handler'] = $app->protect(new Factory\Handler()); $app['logger.processor'] = $app->protect(new Factory\Processor()); $app['logger.factory'] = $app->protect(function (array $loggers) use($app) { if (empty($loggers)) { throw new \InvalidArgumentException('Empty value is not allowed for loggers'); } foreach ($loggers as $name => $values) { $level = 'debug'; $handlers = []; $processors = []; if (isset($values['level'])) { $level = $values['level']; } if (!isset($values['handlers'])) { $values['handlers'] = []; } if (!isset($values['processors'])) { $values['processors'] = []; } foreach ($values['handlers'] as $handler) { if (!isset($handler['level'])) { $handler['level'] = $level; } $handlers[] = $app['logger.handler']($handler); } foreach ($values['processors'] as $processor) { $processors[] = $app['logger.processor']($processor); } $app['logger.create']($name, $level, $handlers, $processors); } }); $app['logger.manager'] = $app->share(function () { return new Log\Collection(); }); $app['logger.bubble'] = true; $app['logger.permission'] = null; $app['logger.log_folder'] = null; }
public function testWithLoader() { $this->app['env.loader'] = $this->app->protect(function () { return $_SERVER; }); $this->app->register(new EnvironmentProvider()); $this->app->boot(); $this->assertEquals($_SERVER, $this->app['env']->getVars()); }
/** * (non-PHPdoc) * @see \Silex\ServiceProviderInterface::register() * @param Application $app */ public function register(Application $app) { $service = $this; $app[static::GENERATE] = $app->protect(function (string $password) use($service) { return $service->generate($password, $this->config['cost']); }); $app[static::VERIFY] = $app->protect(function (string $password, string $hash) use($service) { return $service->verify($password, $hash); }); }
/** * (non-PHPdoc) * @see \Silex\ServiceProviderInterface::register() * @param Application $app */ public function register(Application $app) { Driver::config($this->config); $service = $this; $app[static::UPLOADER] = $app->protect(function (UploadedFile $file) use($service) { return $service->createFromFile($file); }); $app[static::IMPORTER] = $app->protect(function (string $url) use($service) { return $service->createFromUrl($url); }); }
public function register(Application $app) { $app[self::AUTH_VALIDATE_CREDENTIALS] = $app->protect(function ($user, $pass) { return $this->validateCredentials($user, $pass); }); $app[self::AUTH_VALIDATE_TOKEN] = $app->protect(function ($token) { return $this->validateToken($token); }); $app[self::AUTH_NEW_TOKEN] = $app->protect(function ($user) { return $this->getNewTokenForUser($user); }); }
public function register(Application $app) { $app['asset.packages'] = $app->share(function ($app) { $defaultPackage = new Package($app['asset.version_strategy']('view')); $packages = new Packages($defaultPackage); $packages->addPackage('bolt', $app['asset.package_factory']('view')); $packages->addPackage('extensions', new PathPackage('', $app['asset.version_strategy']('web'), $app['asset.context'])); $packages->addPackage('files', $app['asset.package_factory']('files')); $packages->addPackage('theme', $app['asset.package_factory']('theme')); return $packages; }); $app['asset.package_factory'] = $app->protect(function ($name) use($app) { return new PathPackage($app['resources']->getUrl($name), $app['asset.version_strategy']($name), $app['asset.context']); }); $app['asset.version_strategy'] = $app->protect(function ($name) use($app) { return new Asset\BoltVersionStrategy($app['filesystem']->getFilesystem($name), $app['asset.salt']); }); $app['asset.context'] = $app->share(function () use($app) { return new RequestStackContext($app['request_stack']); }); $app['asset.salt.factory'] = function () use($app) { return $app['randomgenerator']->generateString(10); }; $app['asset.salt'] = $app->share(function ($app) { $file = $app['filesystem']->getFile('cache://.assetsalt'); try { $salt = $file->read(); } catch (FileNotFoundException $e) { $salt = $app['asset.salt.factory']; $file->put($salt); } return $salt; }); $app['asset.injector'] = $app->share(function () { $snippets = new Asset\Injector(); return $snippets; }); $app['asset.queue.file'] = $app->share(function ($app) { $queue = new Asset\File\Queue($app['asset.injector'], $app['asset.packages']); return $queue; }); $app['asset.queue.snippet'] = $app->share(function ($app) { $queue = new Asset\Snippet\Queue($app['asset.injector'], $app['cache'], $app['config'], $app['resources']); return $queue; }); $app['asset.queue.widget'] = $app->share(function ($app) { $queue = new Asset\Widget\Queue($app['asset.injector'], $app['cache'], $app['render']); return $queue; }); $app['asset.queues'] = $app->share(function ($app) { return [$app['asset.queue.file'], $app['asset.queue.snippet'], $app['asset.queue.widget']]; }); }
/** * Register Guzzle Clients * * @param Application $app * * @return Guzzle\Http\Client */ public function register(Application $app) { $app['guzzle.client.read'] = $app->protect(function () use($app) { $client = new GuzzleClient(); $client->setDefaultOption('auth', array($app['guzzle.client.read.user'], $app['guzzle.client.read.pass'])); return $client; }); $app['guzzle.client.write'] = $app->protect(function () use($app) { $client = new GuzzleClient(); $client->setDefaultOption('auth', array($app['guzzle.client.write.user'], $app['guzzle.client.write.pass'])); return $client; }); }
public function register(Application $app) { $app['security.authentication_listener.factory.esn_galaxy'] = $app->protect(function ($name, $options) use($app) { if (!isset($app['security.authentication_listener.' . $name . '.esn_galaxy'])) { $app['security.authentication_listener.' . $name . '.esn_galaxy'] = $app['security.authentication_listener.esn_galaxy._proto']($name, $options); } if (!isset($app['security.authentication_provider.' . $name . '.esn_galaxy'])) { $app['security.authentication_provider.' . $name . '.esn_galaxy'] = $app['security.authentication_provider.esn_galaxy._proto']($name, $options); } $app['security.authentication_entry_point.' . $name . '.esn_galaxy'] = $app->share(function () use($app, $options) { return new CasAuthenticationEntryPoint($app, $app['security.http_utils']); }); return array('security.authentication_provider.' . $name . '.esn_galaxy', 'security.authentication_listener.' . $name . '.esn_galaxy', 'security.authentication_entry_point.' . $name . '.esn_galaxy', 'pre_auth'); }); $app['security.authentication_listener.esn_galaxy._proto'] = $app->protect(function ($name, $options) use($app) { return $app->share(function () use($app, $name, $options) { $options['check_path'] = isset($options['check_path']) ? $options['check_path'] : '/cas/validation'; $app->match($options['check_path'], function () { }); $app['jasig_cas_client'] = $app->share(function () use($options, $app) { $options['cas_server']['base_url'] = isset($options['cas_server']['base_url']) ? $options['cas_server']['base_url'] : 'galaxy.esn.org'; return new JasigClient(new EsnGalaxyResponseParser(), $app['security.http_utils'], $options); }); if (!isset($app['security.authentication.success_handler.' . $name . '.esn_galaxy'])) { $app['security.authentication.success_handler.' . $name . '.esn_galaxy'] = $app['security.authentication.success_handler._proto']($name, $options); } if (!isset($app['security.authentication.failure_handler.' . $name . '.esn_galaxy'])) { $app['security.authentication.failure_handler.' . $name . '.esn_galaxy'] = $app['security.authentication.failure_handler._proto']($name, $options); } if (isset($options['first_login_path'])) { $app['security.authentication.success_handler.' . $name . '.esn_galaxy'] = $app['security.authentication.cas_success_handler._proto']($name, $options); } return new EsnGalaxyAuthenticationListener($app['jasig_cas_client'], $app['security'], $app['security.authentication_manager'], $app['security.session_strategy'], $app['security.http_utils'], $name, $app['security.authentication.success_handler.' . $name . '.esn_galaxy'], $app['security.authentication.failure_handler.' . $name . '.esn_galaxy'], $options, $app['logger'], $app['dispatcher']); }); }); $app['security.authentication_provider.esn_galaxy._proto'] = $app->protect(function ($name, $options) use($app) { return $app->share(function () use($app, $name, $options) { if (!isset($options['auth'])) { $options['auth'] = ['*' => ['Local.activeMember' => 'ROLE_USER', 'Local.regularBoardMember' => 'ROLE_BOARD']]; } return new EsnGalaxyAuthenticationProvider($app['security.user_provider.' . $name], $options['auth']); }); }); $app['security.authentication.cas_success_handler._proto'] = $app->protect(function ($name, $options) use($app) { return $app->share(function () use($name, $options, $app) { $handler = new CasAuthenticationSuccesHandler($app['security.http_utils'], $options); $handler->setProviderKey($name); return $handler; }); }); }
public function register(Application $app) { $moduleName = $this->moduleName; $this->app = $app; $app[$moduleName . '.module_provider'] = $this; // Checking for dependencies if (!isset($app['orm.em'])) { throw new \RuntimeException('You must register ORM EntityManager before registring ' . get_class($this)); } if (!isset($app['twig'])) { throw new \RuntimeException('You must register Twig before registring ' . get_class($this)); } // Setup controller provider $app[$moduleName . '.module_provider'] = $this; // Setup controllers $app[$moduleName . '.controller'] = $app->share(function () use($app, $moduleName) { $em = $app['orm.em']; $moduleViewPath = str_replace('.', '/', $moduleName); return new RestController($app, $moduleName, $moduleViewPath, $em->getRepository('BDF2\\Content\\Entity\\Category'), $app[$moduleName . '.form_provider']); }); // Setup routing $app[$moduleName . '.routes.prefix'] = '/categories'; // Setup resources managed by module $app[$moduleName . '.resource_provider'] = $app->protect(function ($id) use($app) { if ($id != null) { $entityManager = $app['orm.em']; return $entityManager->getRepository('BDF2\\Content\\Entity\\Category')->findOneById($id); } return null; }); // Setup form $app[$moduleName . '.form_provider'] = $app->protect(function ($resource) use($app) { return $app['form.factory']->create(new CategoryType($app['form.data_transformer.date_time']), $resource); }); // Adding entities to ORM Entity Manager $app['orm.em.paths'] = $app->share($app->extend('orm.em.paths', function ($paths) use($app) { $path = __DIR__ . '/../Entity'; if (!in_array($path, $paths, true)) { $paths[] = $path; } return $paths; })); // Adding view paths $app['twig.path'] = $app->share($app->extend('twig.path', function ($paths) { $path = __DIR__ . '/../views'; if (!in_array($path, $paths, true)) { $paths[] = $path; } return $paths; })); }
/** * @depends testRegister */ public function testPdo() { $this->provider->register($this->app); $_this = $this; $this->app['pdo.factory'] = $this->app->protect(function ($a, $b, $c, array $d) use($_this) { $_this->assertEquals('a', $a); $_this->assertEquals('b', $b); $_this->assertEquals('c', $c); $_this->assertEquals(array('d'), $d); return true; }); $this->app['pdo.defaults'] = array('pdo.dsn' => 'a', 'pdo.username' => 'b', 'pdo.password' => 'c', 'pdo.options' => array('d')); $this->assertTrue($this->app['pdo']); }
/** * {@inheritDoc} */ public function register(Application $app) { $app['pdo.factory'] = $app->protect(function ($dsn, $username = null, $password = null, array $options = array()) use($app) { /* if ($app['debug'] && isset($app['monolog'])) { $pdo = new PdoLog($dsn, $username, $password, $options); $pdo->onLog( function (array $entry) use ($app) { $app['monolog']->addDebug( sprintf( 'PDO query: %s, values :%s', $entry['query'], var_export($entry['values'], true) ) ); } ); return $pdo; }*/ return new Db($dsn, $username, $password, $options); }); $app['pdo'] = $app->share(function (Application $app) { foreach ($app['pdo.defaults'] as $name => $value) { if (!isset($app[$name])) { $app[$name] = $value; } } return $app['pdo.factory']($app['pdo.dsn'], $app['pdo.username'], $app['pdo.password'], $app['pdo.options']); }); $app['pdo.defaults'] = array('pdo.username' => null, 'pdo.password' => null, 'pdo.options' => array()); }
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']; }); }
public function register(Application $app) { $app['monolog'] = $app->share(function () use($app) { $log = new Logger(isset($app['monolog.name']) ? $app['monolog.name'] : 'myapp'); $app['monolog.configure']($log); return $log; }); $app['monolog.configure'] = $app->protect(function ($log) use($app) { $log->pushHandler($app['monolog.handler']); }); $app['monolog.handler'] = function () use($app) { return new StreamHandler($app['monolog.logfile'], $app['monolog.level']); }; if (!isset($app['monolog.level'])) { $app['monolog.level'] = function () { return Logger::DEBUG; }; } if (isset($app['monolog.class_path'])) { $app['autoloader']->registerNamespace('Monolog', $app['monolog.class_path']); } $app->before(function (Request $request) use($app) { $app['monolog']->addInfo('> ' . $request->getMethod() . ' ' . $request->getRequestUri()); }); $app->error(function (\Exception $e) use($app) { $app['monolog']->addError($e->getMessage()); }); $app->after(function (Request $request, Response $response) use($app) { $app['monolog']->addInfo('< ' . $response->getStatusCode()); }); }
/** * {@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; }); }
/** * @inheritdoc */ public function register(Application $app) { $company = $this->company; $app['nfe.create'] = $app->protect(function ($params) use($company) { return $this->create($company, $params); }); $app['nfe.pdf'] = $app->protect(function ($nfe) use($company) { return $this->pdf($company, $nfe); }); $app['nfe.xml'] = $app->protect(function ($nfe) use($company) { return $this->xml($company, $nfe); }); $app['nfe.address'] = $app->protect(function ($postalCode) use($company) { return $this->address($postalCode); }); }
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 __construct(Application $app, array $values = array()) { parent::__construct(); $this->app = $app; $this['debug'] = false; $this['admin'] = false; $this['admin_content'] = ''; $this['block_type_factory'] = $app->protect(function ($blockTypeData) { return BlockType::factory($blockTypeData); }); $this['block_types'] = $this->share(function () { return array(); }); $this['twig_extensions'] = $this->share(function () { return array(); }); $this['snippet_queue'] = $this->share(function () { return new SnippetQueue(); }); $this['loader_class'] = 'NodePub\\Core\\Extension\\Loader'; $app['loader'] = $app->share(function ($app) { return new $app['extension_loader_class'](); }); foreach ($values as $key => $value) { $this[$key] = $value; } }
/** * (non-PHPdoc) * @see \Silex\ServiceProviderInterface::register() * @param Application $app */ public function register(Application $app) { $service = $this; $app[static::NAME] = $app->protect(function (string $url) use($service) { return $service->create($url); }); }
/** * @see Silex\ServiceProviderInterface::register * @param Silex\Application $app */ public function register(Application $app) { // There's only ever going to be one error page...right? $app['whoops.error_page_handler'] = $app->share(function () { return new PrettyPageHandler(); }); // Retrieves info on the Silex environment and ships it off // to the PrettyPageHandler's data tables: // This works by adding a new handler to the stack that runs // before the error page, retrieving the shared page handler // instance, and working with it to add new data tables $app['whoops.silex_info_handler'] = $app->protect(function () use($app) { try { $request = $app['request']; } catch (RuntimeException $e) { // This error occurred too early in the application's life // and the request instance is not yet available. return; } // General application info: $app['whoops.error_page_handler']->addDataTable('Silex Application', array('Charset' => $app['charset'], 'Locale' => $app['locale'], 'Route Class' => $app['route_class'], 'Dispatcher Class' => $app['dispatcher_class'], 'Application Class' => get_class($app))); // Request info: $app['whoops.error_page_handler']->addDataTable('Silex Application (Request)', array('URI' => $request->getUri(), 'Request URI' => $request->getRequestUri(), 'Path Info' => $request->getPathInfo(), 'Query String' => $request->getQueryString() ?: '<none>', 'HTTP Method' => $request->getMethod(), 'Script Name' => $request->getScriptName(), 'Base Path' => $request->getBasePath(), 'Base URL' => $request->getBaseUrl(), 'Scheme' => $request->getScheme(), 'Port' => $request->getPort(), 'Host' => $request->getHost())); }); $app['whoops'] = $app->share(function () use($app) { $run = new Run(); $run->pushHandler($app['whoops.error_page_handler']); $run->pushHandler($app['whoops.silex_info_handler']); return $run; }); $app->error(array($app['whoops'], Run::EXCEPTION_HANDLER)); $app['whoops']->register(); }
/** * {@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']; }); }
/** * Registers the service provider, sets the user defined options and sets the session handler * * @param \Silex\Application $app The silex app */ public function register(Application $app) { $app['pool.default_options'] = array('driver' => 'Ephemeral', 'session' => false, 'logger' => false); $app['pools.options.init'] = $app->protect(function () use($app) { static $init = false; if ($init) { return; } $init = true; $app['pools.options'] = self::createOptions($app); }); $app['pools'] = $app->share(function () use($app) { $app['pools.options.init'](); return self::createPools($app); }); $this->session_handler = isset($app['session.storage.handler']) ? $app['session.storage.handler'] : array(); $app['session.storage.handler'] = $app->share(function () use($app) { $app['pools.options.init'](); foreach ($app['pools.options'] as $name => $options) { if (isset($options['session']) && $options['session']) { $session_options = is_array($options['session']) ? $options['session'] : array(); return new StashSessionHandler($app['pools'][$name], $session_options); } } return $this->session_handler; }); $app['pool'] = $app->share(function ($app) { $pools = $app['pools']; return $pools[$app['pools.default']]; }); }