public function createLogger(Domain\Core\Config $config) : Logger { $c = $config->get('logging'); $outputs = []; $configuredOutputs = $c->get('outputs'); for ($i = 0; $i < \count($configuredOutputs); $i++) { $output = $configuredOutputs[$i]; if (isset($output->format) === false) { $output->format = '{date} {time} {level}'; } switch ($output->type) { case 'console': $outputs[] = new ConsoleOutput($output->format); break; case 'syslog': if (isset($output->ident) === false) { $output->ident = 'dashboard'; } $outputs[] = new SyslogOutput($output->ident, $output->format); break; default: throw new \RuntimeError('Unsupported Logger output ' . $output->type); } } return new ConcreteLogger(new LogLevel($c->get('threshold')), $outputs); }
/** * Bootstraps the backend. This function registers an auto loader, parses the configuration * file, configures error handling and logging and finally hands over control to the * Router. * Both the configuration and the logger instance are stored in the * Dashboard\Backend\Application\LifeCycle\RequestScope, with the respective keys *config* * and *logger*. * * @param \stdClass $config The configuration object. * @return void */ public function bootstrap(\stdClass $config) { \spl_autoload_register('Dashboard\\Backend\\Application\\Control\\Autoloader::autoload', true, true); $this->configureErrorHandling(); $config = new Config($config); $sessionService = new Domain\Session\SessionService(); $session = $sessionService->createSession($config->get('session')); $session->start(); $psrService = new Domain\Psr\PsrService(); RequestScope::instance()->set('config', $config); RequestScope::instance()->set('logger', $psrService->createLogger($config)); RequestScope::instance()->set('session', $session); }
public function createSession(Config $config) : Session { return new Session(array('cookie_lifetime' => $config->get('cookie_lifetime'))); }