コード例 #1
0
ファイル: App.php プロジェクト: bd808/quips
 /**
  * Configure inversion of control/dependency injection container.
  *
  * @param \Slim\Helper\Set $container IOC container
  */
 protected function configureIoc(\Slim\Helper\Set $container)
 {
     $container->singleton('i18nCache', function ($c) {
         return new JsonCache($c->settings['i18n.path'], $c->log);
     });
     $container->singleton('i18nContext', function ($c) {
         return new I18nContext($c->i18nCache, $c->settings['i18n.default'], $c->log);
     });
     $container->singleton('mailer', function ($c) {
         return new Mailer(array('Host' => $c->settings['smtp.host']), $c->log);
     });
     $container->singleton('parsoid', function ($c) {
         return new ParsoidClient($c->settings['parsoid.url'], $c->settings['parsoid.cache'], $c->log);
     });
     $container->singleton('quips', function ($c) {
         $settings = array('url' => $c->settings['es.url'], 'log' => true);
         if ($c->settings['es.user'] !== '') {
             $creds = base64_encode($c->settings['es.user'] . ':' . $c->settings['es.password']);
             $settings['headers'] = array('Authorization' => "Basic {$creds}");
         }
         $client = new \Elastica\Client($settings);
         $client->setLogger($c->log);
         return new Quips($client, $c->log);
     });
     $container->singleton('oauthConfig', function ($c) {
         $conf = new \MediaWiki\OAuthClient\ClientConfig($c->settings['oauth.endpoint']);
         $conf->setRedirURL($c->settings['oauth.redir']);
         $conf->setConsumer(new \MediaWiki\OAuthClient\Consumer($c->settings['oauth.consumer_token'], $c->settings['oauth.secret_token']));
         return $conf;
     });
     $container->singleton('oauthClient', function ($c) {
         $client = new \MediaWiki\OAuthClient\Client($c->oauthConfig, $c->log);
         $client->setCallback($c->settings['oauth.callback']);
         return $client;
     });
     $container->singleton('userManager', function ($c) {
         return new OAuthUserManager($c->oauthClient, $c->log);
     });
     $container->singleton('authManager', function ($c) {
         return new AuthManager($c->userManager);
     });
     // TODO: figure out where to send logs
 }