/** * Load the configuration files into the Zend registry. * * @return Zend_Config_Ini configuration file * @throws Zend_Exception */ protected function _initConfig() { // init language $configGlobal = new Zend_Config_Ini(APPLICATION_CONFIG, 'global', true); if (isset($_COOKIE[MIDAS_LANGUAGE_COOKIE_NAME])) { $configGlobal->application->lang = $_COOKIE[MIDAS_LANGUAGE_COOKIE_NAME]; } if (isset($_GET['lang'])) { $language = $_GET['lang']; if ($language !== 'en' && $language !== 'fr') { $language = 'en'; } $configGlobal->application->lang = $language; $date = new DateTime(); $interval = new DateInterval('P1M'); setcookie(MIDAS_LANGUAGE_COOKIE_NAME, $language, $date->add($interval)->getTimestamp(), '/', !empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'], (int) $configGlobal->get('cookie_secure', 1) === 1, true); } Zend_Registry::set('configGlobal', $configGlobal); $configCore = new Zend_Config_Ini(CORE_CONFIG, 'global', true); Zend_Registry::set('configCore', $configCore); // check if internationalization enabled if (isset($configCore->internationalization) && $configCore->internationalization == '0') { $configGlobal->application->lang = 'en'; } $config = new Zend_Config_Ini(APPLICATION_CONFIG, $configGlobal->environment, true); Zend_Registry::set('config', $config); date_default_timezone_set($configGlobal->default->timezone); // InitDatabase $configDatabase = new Zend_Config_Ini(DATABASE_CONFIG, $configGlobal->environment, true); if (empty($configDatabase->database->params->driver_options)) { $driverOptions = array(); } else { $driverOptions = $configDatabase->database->params->driver_options->toArray(); } if ($configDatabase->database->adapter == 'PDO_SQLITE') { $params = array('dbname' => $configDatabase->database->params->dbname, 'driver_options' => $driverOptions); } else { if ($configDatabase->database->adapter == 'PDO_MYSQL') { $driverOptions[PDO::MYSQL_ATTR_USE_BUFFERED_QUERY] = true; } $params = array('dbname' => $configDatabase->database->params->dbname, 'username' => $configDatabase->database->params->username, 'password' => $configDatabase->database->params->password, 'driver_options' => $driverOptions); if (empty($configDatabase->database->params->unix_socket)) { $params['host'] = $configDatabase->database->params->host; $params['port'] = $configDatabase->database->params->port; } else { $params['unix_socket'] = $configDatabase->database->params->unix_socket; } } $db = Zend_Db::factory($configDatabase->database->adapter, $params); Zend_Db_Table::setDefaultAdapter($db); Zend_Registry::set('dbAdapter', $db); Zend_Registry::set('configDatabase', $configDatabase); // Init log if ($configGlobal->environment == 'production') { Zend_Loader_Autoloader::getInstance()->suppressNotFoundWarnings(true); $priority = Zend_Log::WARN; } else { Zend_Loader_Autoloader::getInstance()->suppressNotFoundWarnings(false); $priority = Zend_Log::DEBUG; } if (is_writable(LOGS_PATH)) { $stream = LOGS_PATH . '/' . $configGlobal->environment . '.log'; $logger = Zend_Log::factory(array(array('writerName' => 'Stream', 'writerParams' => array('stream' => $stream), 'formatterName' => 'Simple', 'filterName' => 'Priority', 'filterParams' => array('priority' => $priority)))); } else { $logger = Zend_Log::factory(array(array('writerName' => 'Syslog', 'formatterName' => 'Simple', 'filterName' => 'Priority', 'filterParams' => array('priority' => $priority)))); } if (file_exists(LOCAL_CONFIGS_PATH . '/database.local.ini')) { $columnMapping = array('priority' => 'priority', 'message' => 'message', 'module' => 'module'); $writer = new Zend_Log_Writer_Db($db, 'errorlog', $columnMapping); if ($configGlobal->environment == 'production') { $priority = Zend_Log::INFO; } else { $priority = Zend_Log::DEBUG; } $filter = new Zend_Log_Filter_Priority($priority); $writer->addFilter($filter); $logger->addWriter($writer); } $logger->setEventItem('module', 'core'); $logger->registerErrorHandler(); Zend_Registry::set('logger', $logger); // Init error handler require_once BASE_PATH . '/core/controllers/components/NotifyErrorComponent.php'; $notifyErrorComponent = new NotifyErrorComponent(); ini_set('display_errors', 0); register_shutdown_function(array($notifyErrorComponent, 'fatalError'), $logger); set_error_handler(array($notifyErrorComponent, 'warningError'), E_NOTICE | E_WARNING); return $config; }
protected function addDbWriterToLogger(Zend_Log $logger, $config) { if (!(isset($config->active) && $config->active == 1)) { return; } $this->bootstrap('db'); $dbLogWriter = new Zend_Log_Writer_Db(Registry::getDbAdapter(), $config->table_name, array('websiteid' => 'websiteid', 'id' => 'id', 'name' => 'name', 'additionalinfo' => 'additionalinfo', 'timestamp' => 'timestamp', 'userlogin' => 'userlogin', 'action' => 'message')); if (isset($config->level)) { $dbLogWriter->addFilter((int) $config->level); } $logger->addWriter($dbLogWriter); }