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());
 }
Example #12
0
 /**
  * (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);
     });
 }
Example #13
0
 /**
  * (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);
     });
 }
Example #14
0
 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);
     });
 }
Example #15
0
 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']];
     });
 }
Example #16
0
 /**
  * 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'];
     });
 }
Example #22
0
 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());
     });
 }
Example #23
0
 /**
  * {@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;
     });
 }
Example #24
0
 /**
  * @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');
     });
 }
Example #26
0
 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;
     }
 }
Example #27
0
 /**
  * (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);
     });
 }
Example #28
0
 /**
  * @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'];
     });
 }
Example #30
0
 /**
  * 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']];
     });
 }