/** * Registers services on the given app. * * @param Application $app An Application instance */ public function register(Application $app) { $app['hipchat'] = $app->share(function () use($app) { if (empty($app['hipchat.rooms'])) { return new NullLogger(); } $log = new TargetMappingLogger(); $app['hipchat.configure']($log); return $log; }); $app['hipchat.configure'] = $app->protect(function (TargetMappingLogger $log) use($app) { $roomConfigs = $app['hipchat.rooms']; $defaults = ['targets' => [], 'name' => 'HipChat', 'notify' => false, 'level' => Logger::INFO, 'bubble' => true, 'useSSL' => true, 'format' => 'text', 'host' => 'api.hipchat.com', 'version' => HipChatHandler::API_V2, 'guzzle' => false]; if (isset($roomConfigs['_default'])) { $defaults = $roomConfigs['_default'] + $defaults; unset($roomConfigs['_default']); } foreach ($roomConfigs as $roomConfig) { $roomConfig += $defaults; $logger = new Logger('hcm'); if (!isset($roomConfig['room']) || !isset($roomConfig['token'])) { throw new InvalidArgumentException('missing room/token configuration'); } if (isset($roomConfig['guzzle']) && is_array($roomConfig['guzzle'])) { $logger->pushHandler(new GuzzleHipChatHandler(new Client('', $this->prepareGuzzleOptions($roomConfig['guzzle'])), $roomConfig['token'], $roomConfig['room'], $roomConfig['name'], $roomConfig['notify'], $roomConfig['level'], $roomConfig['bubble'], $roomConfig['useSSL'], $roomConfig['format'], $roomConfig['host'], $roomConfig['version'])); } else { $logger->pushHandler(new HipChatHandler($roomConfig['token'], $roomConfig['room'], $roomConfig['name'], $roomConfig['notify'], $roomConfig['level'], $roomConfig['bubble'], $roomConfig['useSSL'], $roomConfig['format'], $roomConfig['host'], $roomConfig['version'])); } $log->addLogger($logger, $roomConfig['targets']); } }); }
/** * Registers services on the given app. * * @param Application $app An Application instance */ public function register(Application $app) { $app['client_factory'] = $app->protect(function ($platformId) use($app) { $config = $app['config']; if (!property_exists($config, $platformId)) { throw new RuntimeException("Couldn't find platform details for {$platformId}. Run the 'authorize' command first."); } $platformDetails = (array) $config->{$platformId}; $client = new Client(['base_url' => $platformDetails['base_url'], 'defaults' => ['auth' => 'oauth', 'verify' => false, 'headers' => ['Accept' => 'application/json']]]); $platformDetails['callback'] = 'http://127.0.0.1:8000'; $oauth = new Oauth1($platformDetails); $client->getEmitter()->attach($oauth); return $client; }); }
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']); } }
public function register(Application $app) { $app['db.default_options'] = array('driver' => 'pdo_mysql', 'dbname' => null, 'host' => 'localhost', 'user' => 'root', 'password' => null); $app['dbs.options.initializer'] = $app->protect(function () use($app) { static $initialized = false; if ($initialized) { return; } $initialized = true; if (!isset($app['dbs.options'])) { $app['dbs.options'] = array('default' => isset($app['db.options']) ? $app['db.options'] : array()); } $tmp = $app['dbs.options']; foreach ($tmp as $name => &$options) { $options = array_replace($app['db.default_options'], $options); if (!isset($app['dbs.default'])) { $app['dbs.default'] = $name; } } $app['dbs.options'] = $tmp; }); $app['dbs'] = $app->share(function () use($app) { $app['dbs.options.initializer'](); $dbs = new \Pimple(); foreach ($app['dbs.options'] as $name => $options) { if ($app['dbs.default'] === $name) { // we use shortcuts here in case the default has been overriden $config = $app['db.config']; $manager = $app['db.event_manager']; } else { $config = $app['dbs.config'][$name]; $manager = $app['dbs.event_manager'][$name]; } $dbs[$name] = DriverManager::getConnection($options, $config, $manager); } return $dbs; }); $app['dbs.config'] = $app->share(function () use($app) { $app['dbs.options.initializer'](); $configs = new \Pimple(); foreach ($app['dbs.options'] as $name => $options) { $configs[$name] = new Configuration(); } return $configs; }); $app['dbs.event_manager'] = $app->share(function () use($app) { $app['dbs.options.initializer'](); $managers = new \Pimple(); foreach ($app['dbs.options'] as $name => $options) { $managers[$name] = new EventManager(); } return $managers; }); // shortcuts for the "first" DB $app['db'] = $app->share(function () use($app) { $dbs = $app['dbs']; return $dbs[$app['dbs.default']]; }); $app['db.config'] = $app->share(function () use($app) { $dbs = $app['dbs.config']; return $dbs[$app['dbs.default']]; }); $app['db.event_manager'] = $app->share(function () use($app) { $dbs = $app['dbs.event_manager']; return $dbs[$app['dbs.default']]; }); if (isset($app['db.dbal.class_path'])) { $app['autoloader']->registerNamespace('Doctrine\\DBAL', $app['db.dbal.class_path']); } if (isset($app['db.common.class_path'])) { $app['autoloader']->registerNamespace('Doctrine\\Common', $app['db.common.class_path']); } }