getConnection(); Zend_Db_Table::setDefaultAdapter($adapter); // we don't want the connection information to appear in the logs $adapter->resetConfig(); } return $adapter; } /** * Get adapter class name * * @param string $adapterName * @return string */ private static function getAdapterClassName($adapterName) { return 'Piwik\Db\Adapter\\' . str_replace(' ', '\\', ucwords(str_replace(array('_', '\\'), ' ', strtolower($adapterName)))); } /** * Get default port for named adapter * * @param string $adapterName * @return int */ public static function getDefaultPortForAdapter($adapterName) { $className = self::getAdapterClassName($adapterName); return call_user_func(array($className, 'getDefaultPort')); } /** * Get list of adapters * * @return array */ public static function getAdapters() { static $adapterNames = array( // currently supported by Piwik 'Pdo\Mysql', 'Mysqli', // other adapters supported by Zend_Db // 'Pdo_Pgsql', // 'Pdo_Mssql', // 'Sqlsrv', // 'Pdo_Ibm', // 'Db2', // 'Pdo_Oci', // 'Oracle', ); $adapters = array(); foreach ($adapterNames as $adapterName) { $className = '\Piwik\Db\Adapter\\' . $adapterName; if (call_user_func(array($className, 'isEnabled'))) { $adapters[strtoupper($adapterName)] = call_user_func(array($className, 'getDefaultPort')); } } return $adapters; } }