protected function initialize()
 {
     $configuration = Configuration::read(ConfigurationParameters::DATABASE_CONNECTION);
     if (!is_null($configuration) && $configuration instanceof DatabaseConfiguration) {
         $this->setDataSource(DriverFactory::getDriver($configuration));
     } else {
         throw new DatabaseException(MessageCode::DATABASE_CONNECTION_CONFIGURATION_NOT_FOUND);
     }
 }
 public static function getDriver(DatabaseConfiguration $configuration)
 {
     if ($configuration->isMysql()) {
         return DriverFactory::getMysqlDriver($configuration->getHost(), $configuration->getPort(), $configuration->getDatabase());
     }
     if ($configuration->isPostgres()) {
         return DriverFactory::getPostgresDriver($configuration->getHost(), $configuration->getPort(), $configuration->getDatabase());
     }
     if ($configuration->isSqlite()) {
         return DriverFactory::getSqliteDriver($configuration->getDatabase());
     }
     return null;
 }