Exemplo n.º 1
0
Arquivo: App.php Projeto: bd808/SAL
 /**
  * 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(['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('logs', function ($c) {
         return new Logs(new \Elastica\Client(['url' => $c->settings['es.url']]), $c->log);
     });
     // TODO: figure out where to send logs
 }
Exemplo n.º 2
0
Arquivo: App.php Projeto: 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
 }
Exemplo n.º 3
0
 /**
  * Constructor
  * @param  array $userSettings Associative array of application settings
  */
 public function __construct(array $userSettings = array())
 {
     // Setup IoC container
     $this->container = new \Slim\Helper\Set();
     $this->container['settings'] = array_merge(static::getDefaultSettings(), $userSettings);
     // Default environment
     $this->container->singleton('environment', function ($c) {
         return \Slim\Environment::getInstance();
     });
     // Default request
     $this->container->singleton('request', function ($c) {
         return new \Slim\Http\Request($c['environment']);
     });
     // Default response
     $this->container->singleton('response', function ($c) {
         return new \Slim\Http\Response();
     });
     // Default router
     $this->container->singleton('router', function ($c) {
         return new \Slim\Router();
     });
     // Default view
     $this->container->singleton('view', function ($c) {
         $viewClass = $c['settings']['view'];
         return $viewClass instanceof \Slim\View ? $viewClass : new $viewClass();
     });
     // Default log writer
     $this->container->singleton('logWriter', function ($c) {
         $logWriter = $c['settings']['log.writer'];
         return is_object($logWriter) ? $logWriter : new \Slim\LogWriter($c['environment']['slim.errors']);
     });
     // Default log
     $this->container->singleton('log', function ($c) {
         $log = new \Slim\Log($c['logWriter']);
         $log->setEnabled($c['settings']['log.enabled']);
         $log->setLevel($c['settings']['log.level']);
         $env = $c['environment'];
         $env['slim.log'] = $log;
         return $log;
     });
     // Default mode
     $this->container['mode'] = function ($c) {
         $mode = $c['settings']['mode'];
         if (isset($_ENV['SLIM_MODE'])) {
             $mode = $_ENV['SLIM_MODE'];
         } else {
             $envMode = getenv('SLIM_MODE');
             if ($envMode !== false) {
                 $mode = $envMode;
             }
         }
         return $mode;
     };
     // Define default middleware stack
     $this->middleware = array($this);
     $this->add(new \Slim\Middleware\Flash());
     $this->add(new \Slim\Middleware\MethodOverride());
     // Make default if first instance
     if (is_null(static::getInstance())) {
         $this->setName('default');
     }
 }
Exemplo n.º 4
0
 public function testConsumeSlimContainer()
 {
     $anoterContainer = new Set();
     $anoterContainer->foo = [];
     $anoterContainer->bar = new \stdClass();
     $anoterContainer->baz = function ($c) {
         return 'Hello';
     };
     $anoterContainer->singleton('foobar', function ($c) {
         return 'Hello';
     });
     $anoterContainer->barfoo = [$this, 'fakeMethod'];
     $this->container->consumeSlimContainer($anoterContainer);
     $this->assertTrue($this->sm->has('foo'));
     $this->assertTrue($this->container->has('foo'));
     $this->assertTrue($this->sm->has('bar'));
     $this->assertTrue($this->container->has('bar'));
     $this->assertTrue($this->sm->has('baz'));
     $this->assertTrue($this->container->has('baz'));
     $this->assertTrue($this->sm->has('foobar'));
     $this->assertTrue($this->container->has('foobar'));
     $this->assertTrue($this->sm->has('barfoo'));
     $this->assertTrue($this->container->has('barfoo'));
 }
Exemplo n.º 5
0
 /**
  * Constructor
  * @param  array $userSettings Associative array of application settings
  */
 public function __construct(array $userSettings = array())
 {
     // Setup IoC container
     $this->container = new \Slim\Helper\Set();
     $this->container['settings'] = array_merge(static::getDefaultSettings(), $userSettings);
     // Default environment
     $this->container->singleton('environment', function ($c) {
         return \Slim\Environment::getInstance();
     });
     // Default request
     $this->container->singleton('request', function ($c) {
         return new \Slim\Http\Request($c['environment']);
     });
     // Default response
     $this->container->singleton('response', function ($c) {
         return new \Slim\Http\Response();
     });
     // Default router
     $this->container->singleton('router', function ($c) {
         return new \Slim\Router();
     });
     // Default view
     $this->container->singleton('view', function ($c) {
         $viewClass = $c['settings']['view'];
         $templatesPath = $c['settings']['templates.path'];
         $view = $viewClass instanceof \Slim\View ? $viewClass : new $viewClass();
         $view->setTemplatesDirectory($templatesPath);
         return $view;
     });
     // Default log writer
     $this->container->singleton('logWriter', function ($c) {
         $logWriter = $c['settings']['log.writer'];
         return is_object($logWriter) ? $logWriter : new \Slim\LogWriter($c['environment']['slim.errors']);
     });
     // Default log
     $this->container->singleton('log', function ($c) {
         $log = new \Slim\Log($c['logWriter']);
         $log->setEnabled($c['settings']['log.enabled']);
         /**
          * set exception and message queue cnofiguration to logger 
          * @author Mustafa Zeynel Dağlı
          */
         $log->setExceptionsQueue($c['settings']['exceptions.rabbitMQ']);
         /**
          * set message queue logging format on message receiver
          * @author Mustafa Zeynel Dağlı
          */
         $log->setExceptionsQueueLogging($c['settings']['exceptions.rabbitMQ.logging']);
         /**
          * set exception queue name
          * @author Mustafa Zeynel Dağlı
          */
         $log->setExceptionsQueueName($c['settings']['exceptions.rabbitMQ.queue.name']);
         /**
          * set serial for message queue in log class
          * @author Mustafa Zeynel Dağlı
          */
         $log->setSerial($c['settings']['request.serial']);
         //print_r('slim construct log level-->'.$c['settings']['log.level']);
         $log->setLevel($c['settings']['log.level']);
         $env = $c['environment'];
         $env['slim.log'] = $log;
         return $log;
     });
     // Default mode
     $this->container['mode'] = function ($c) {
         $mode = $c['settings']['mode'];
         if (isset($_ENV['SLIM_MODE'])) {
             $mode = $_ENV['SLIM_MODE'];
         } else {
             $envMode = getenv('SLIM_MODE');
             if ($envMode !== false) {
                 $mode = $envMode;
             }
         }
         return $mode;
     };
     // Define default middleware stack
     $this->middleware = array($this);
     //$this->add(new \Slim\Middleware\Flash());
     $this->add(new \Slim\Middleware\MethodOverride());
     //$this->add(new \Slim\Middleware\MiddlewareTest());
     $this->add(new \Slim\Middleware\Flash());
     //$this->add(new \Slim\Middleware\MethodOverride());
     // Make default if first instance
     if (is_null(static::getInstance())) {
         $this->setName('default');
     }
 }