/** * Loads the database connections from the Zibo configuration * @param zibo\core\Zibo $zibo Instance of Zibo * @return null * @throws zibo\library\database\exception\DatabaseException when the configuration contains an invalid connection * @throws zibo\library\database\exception\DatabaseException when the default connection does not exist */ private function loadConnectionsFromConfig(Zibo $zibo) { $zibo->runEvent(Zibo::EVENT_LOG, 'Loading database connections', '', 0, self::LOG_NAME); $connections = $zibo->getConfigValue(self::CONFIG_CONNECTION, array()); if (!is_array($connections)) { $connections = array(self::NAME_DEFAULT => $connections); } $defaultConnectionName = null; foreach ($connections as $name => $dsn) { if ($name == self::NAME_DEFAULT) { $defaultConnectionName = $name; } try { $dsn = new Dsn($dsn); $this->registerConnection($name, $dsn); } catch (DatabaseException $e) { if ($name == self::NAME_DEFAULT) { $defaultConnectionName = $dsn; } else { throw $e; } } } if ($defaultConnectionName != null) { $this->setDefaultConnectionName($defaultConnectionName); } }
/** * Initializes the security model from the Zibo configuration * @param zibo\core\Zibo $zibo The Zibo instance * @param zibo\library\ObjectFactory $objectFactory Instance of an object factory * @return null */ private function initializeSecurityModel(Zibo $zibo, ObjectFactory $objectFactory) { $modelClass = $zibo->getConfigValue(self::CONFIG_SECURITY_MODEL); if (!$modelClass) { return; } try { $this->model = $objectFactory->create($modelClass, self::INTERFACE_SECURITY_MODEL); $zibo->runEvent(Zibo::EVENT_LOG, 'Using security model ' . $modelClass, '', 0, self::LOG_NAME); } catch (Exception $e) { $zibo->runEvent(Zibo::EVENT_LOG, 'Could not create security model ' . $modelClass, $e, 1, self::LOG_NAME); } }