$view = new Phalcon\Mvc\View\Simple(); $view->setViewsDir(ROOTDIR . '/app/views/'); $view->registerEngines(array('.phtml' => function ($view) use($config) { $volt = new Phalcon\Mvc\View\Engine\Volt($view); $volt->setOptions(array('compiledPath' => ROOTDIR . '/tmp/volt/', 'compiledExtension' => '.php', 'compiledSeparator' => '_', 'compileAlways' => true)); $compiler = $volt->getCompiler(); $compiler->addFunction('recaptcha_get_html', function () use($config) { return "'" . recaptcha_get_html($config->captcha->pub, null, true) . "'"; }); return $volt; })); return $view; }); $di->setShared('db', function () use($config) { $db = new \Phalcon\Db\Adapter\Pdo\Mysql($config->db->toArray()); $db->execute('SET NAMES UTF8', array()); return $db; }); $di->setShared('modelsMetadata', function () use($config) { if ($config->app->cache_apc) { $metaData = new Phalcon\Mvc\Model\MetaData\Apc(array("lifetime" => 3600, "prefix" => $config->app->suffix . "-meta-db-main")); } else { $metaData = new \Phalcon\Mvc\Model\Metadata\Files(array('metaDataDir' => ROOTDIR . '/tmp/cache/')); } return $metaData; }); $di->setShared('crypt', function () { return new Phalcon\Crypt(); }); $di->setShared('security', function () { $security = new Phalcon\Security();