Exemplo n.º 1
0
 /**
  * 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;
 }
Exemplo n.º 2
0
 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);
 }