$di['registry'] = new Config(); $di['loader'] = $loader; $di['logger'] = function () use($config) { $isCli = PHP_SAPI == 'cli'; $prefix = $config->application->logsDir . ($isCli ? 'cli-' : ''); $logger = new MultipleStream(); $appender = new FileAppender($prefix . 'error.log'); $appender->setLogLevel(Logger::ERROR); $logger->push($appender); $appender = new FileAppender($prefix . 'default.log'); $appender->setLogLevel(Logger::INFO); $logger->push($appender); if ($isCli) { $appender = new ConsoleAppender('php://stderr'); $formatter = new LineFormatter("%date% [%type%] %message%\n"); $appender->setFormatter($formatter); $appender->setLogLevel(Logger::ERROR); $logger->push($appender); } return $logger; }; $di['db'] = function () use($di, $config) { Model::setup(['notNullValidations' => false]); $conn = new DbAdapter($config->database->toArray()); if (isset($config->eventListeners->db)) { $em = $di['eventsManager']; foreach ($config->eventListeners->db as $listener => $options) { if (is_numeric($listener)) { $listener = $options; $options = null; }