header('Retry-After: 3600'); exit($app->handle('/error/show503')->getContent()); } } }); set_error_handler(function ($errno, $errstr, $errfile, $errline) { switch ($errno) { case E_USER_NOTICE: case E_STRICT: break; default: Rj\Logger::messages()->error(sprintf("Error: #%d %s at %s:%d", $errno, $errstr, $errfile, $errline)); } }); $di->set('db', function () use($di) { $db = new Phalcon\Db\Adapter\Pdo\Mysql($di->getShared('config')->database->toArray()); return $db; }, true); $di->set('Mailer', Config::instance()->mailer, true); $frontCache = new Phalcon\Cache\Frontend\Data(['lifetime' => 206400 * 3]); $di->set('cache', function () use($frontCache) { if ($host = Config::instance()->memcached_addr) { try { $redis = new Redis(); $redis->connect(Config::instance()->memcached_addr); return new Rj\Cache\Backend\Redis($frontCache, ['redis' => $redis]); } catch (Exception $e) { Rj\Logger::messages()->error("Exception: " . $e->getMessage() . "\n" . $e->getTraceAsString()); } } return new Phalcon\Cache\Backend\File($frontCache, ['cacheDir' => Config::instance()->cache_dir]);