$dbchar = $cfg->val('DBchar', true); $dbuser = $cfg->val('DBuser', true); $dbpass = $cfg->val('DBpass', true); $dsn = "{$dbdrv}:host={$dbhost};dbname={$dbname};charset={$dbchar}"; $db = new Database($dbdrv, $dsn, $dbuser, $dbpass); break; case 'sqlite': $dbfile = $cfg->val('DBfile'); $dsn = "{$dbdrv}:{$dbfile}"; $db = new Database($dbdrv, $dsn); } } /* Mailer ------------------------------------------------------------------------ */ if ($cfg->val('MAILER_TYPE')) { $mail = MailerFactory::createMailerProvider($cfg->val('MAILER_TYPE')); switch ($cfg->val('MAILER_TYPE')) { case 'Curl': $mail->setParams($cfg->val('MAILER_WEBSERVICE', true), $cfg->val('WEBSERVICE_AUTH', true), $cfg->val('MAILER_ASYNC', true)); break; default: break; } } /* Templating class * Important! It must be called before Lang. ------------------------------------------------------------------------ */ $view = new View($loc->path('templates')); // baseurl for all templates $view->set('baseurl', $loc->url('')); /* Stop here for services
/* Error reporting ------------------------------------------------------------------------ */ ini_set('error_reporting', 'true'); error_reporting(E_ALL | E_STRICT); /* class Cfg is mandatory for futher work ------------------------------------------------------------------------ */ if (!class_exists('CfgData')) { die('CfgData not found. Have you done install steps?'); } /* Session ------------------------------------------------------------------------ */ session_start(); /* Functions ------------------------------------------------------------------------ */ // this function below will handle all arising exception set_exception_handler(function ($exception) { // inside here we must declare vital classes separately $loc = new Locator(); $log = new Logger($loc->path('log')); $log->log($exception, LOG_ERR); // emergency mailer is defined separately $mail = MailerFactory::createMailerProvider('PHP'); // notify by email only once per exception $lockfile = $loc->path('secure') . '/lock.err_' . md5($exception); if (!file_exists($lockfile)) { touch($lockfile); $mail->sendEmail('root', gethostname(), 'Site Reporter', 'Problem occured', $exception); } include_once $loc->path('pages/error.php'); exit; });
// ------------------------------------------------------------------------ // Initialize all classes // Logging $log = new Logger(); // Memory $mem = new Memory(); // Templating class $view = new View(Common::getAbsPath(Cfg::TEMPLATES)); // Languages support $lang = new Lang(); if (class_exists('Cfg') && defined('Cfg::LANGUAGES')) { $lang->loadConfig(Cfg::LANGUAGES); require 'language.php'; } // Mailer $mail = MailerFactory::createMailerProvider(Cfg::MAILER_TYPE); $mail->setParams(Cfg::MAILER_WEBSERVICE, Cfg::WEBSERVICE_AUTH, Cfg::MAILER_ASYNC); // Database /* MySQL */ $dbdrv = Cfg::DBdriver; // $dbhost = Cfg::DBhost; // $dbname = Cfg::DBname; // $dbchar = Cfg::DBchar; // $dsn = "$dbdrv:host=$dbhost;dbname=$dbname;charset=$dbchar"; // $db = new Database($dbdrv, $dsn, Cfg::DBuser, Cfg::DBpass); // MySQL /* SQLite */ $dbfile = Cfg::DBfile; $dsn = "{$dbdrv}:{$dbfile}"; $db = new Database($dbdrv, $dsn); // Page manager as singleton (it might be declared in language.php) $pmgr = PageMgr::getInstance(Cfg::$pages, Common::getAbsPath(Cfg::PAGES_PATH));