diff --git a/core/DataAccess/ArchiveTableCreator.php b/core/DataAccess/ArchiveTableCreator.php index 8e135f996f023ddf02900d873c6035cb58c91db8..aa7fdf5c4e24882e598a97a82926225ab47210cd 100644 --- a/core/DataAccess/ArchiveTableCreator.php +++ b/core/DataAccess/ArchiveTableCreator.php @@ -12,9 +12,10 @@ namespace Piwik\DataAccess; use Exception; -use Piwik\Piwik; use Piwik\Common; use Piwik\Date; +use Piwik\DbHelper; +use Piwik\Piwik; use Zend_Registry; class ArchiveTableCreator @@ -52,7 +53,7 @@ class ArchiveTableCreator if (!in_array($tableName, self::$tablesAlreadyInstalled)) { $db = \Zend_Registry::get('db'); - $sql = Piwik::getTableCreateSql($tableNamePrefix); + $sql = DbHelper::getTableCreateSql($tableNamePrefix); // replace table name template by real name $tableNamePrefix = Common::prefixTable($tableNamePrefix); diff --git a/core/Db/BatchInsert.php b/core/Db/BatchInsert.php index d0b3624893102f360d755128180f4073920dacf8..78a05546c9fe0102ad0a2630ddceb86ab9fa6f69 100644 --- a/core/Db/BatchInsert.php +++ b/core/Db/BatchInsert.php @@ -15,6 +15,7 @@ use Piwik\AssetManager; use Piwik\Common; use Piwik\Config; use Piwik\Db; +use Piwik\DbHelper; use Piwik\Piwik; use Piwik\SettingsServer; use Zend_Registry; @@ -75,7 +76,7 @@ class BatchInsert ); // hack for charset mismatch - if (!Piwik::isDatabaseConnectionUTF8() && !isset(Config::getInstance()->database['charset'])) { + if (!DbHelper::isDatabaseConnectionUTF8() && !isset(Config::getInstance()->database['charset'])) { $fileSpec['charset'] = 'latin1'; } diff --git a/core/Db/Schema/Myisam.php b/core/Db/Schema/Myisam.php index 9502a74f281fb69cf8ce56dde0486f2e54c2726a..5f0a81c92fa2c19dfbcd368c90143d11bdd3b567 100644 --- a/core/Db/Schema/Myisam.php +++ b/core/Db/Schema/Myisam.php @@ -11,15 +11,14 @@ namespace Piwik\Db\Schema; use Exception; -use Piwik\Config; -use Piwik\Db\SchemaInterface; -use Piwik\Piwik; use Piwik\Common; +use Piwik\Config; use Piwik\Date; +use Piwik\Db\SchemaInterface; use Piwik\Db; +use Piwik\DbHelper; use Zend_Registry; - /** * MySQL schema * @@ -414,7 +413,7 @@ class Myisam implements SchemaInterface */ public function getTableCreateSql($tableName) { - $tables = Piwik::getTablesCreateSql(); + $tables = DbHelper::getTablesCreateSql(); if (!isset($tables[$tableName])) { throw new Exception("The table '$tableName' SQL creation code couldn't be found."); diff --git a/core/FrontController.php b/core/FrontController.php index 0d30d38098b264fc33268f43651b691e1ed640c3..7a3660ee342489190b747e74fadb1b556b78ac2f 100644 --- a/core/FrontController.php +++ b/core/FrontController.php @@ -260,7 +260,7 @@ class FrontController } try { - Piwik::createDatabaseObject(); + DbHelper::createDatabaseObject(); } catch (Exception $e) { if (self::shouldRethrowException()) { throw $e; diff --git a/core/Piwik.php b/core/Piwik.php index 08bc16d02bc1c9459955247c9e6c0b3d68e07a3f..5473d6faa9941c83981e70e1a8c18a17150edda7 100644 --- a/core/Piwik.php +++ b/core/Piwik.php @@ -553,70 +553,6 @@ class Piwik Url::redirectToUrl($newUrl); } - /* - * Global database object - */ - - /** - * Create database object and connect to database - * @param array|null $dbInfos - */ - static public function createDatabaseObject($dbInfos = null) - { - $config = Config::getInstance(); - - if (is_null($dbInfos)) { - $dbInfos = $config->database; - } - - Piwik_PostEvent('Reporting.getDatabaseConfig', array(&$dbInfos)); - - $dbInfos['profiler'] = $config->Debug['enable_sql_profiler']; - - $db = null; - Piwik_PostEvent('Reporting.createDatabase', array(&$db)); - if (is_null($db)) { - $adapter = $dbInfos['adapter']; - $db = @Adapter::factory($adapter, $dbInfos); - } - \Zend_Registry::set('db', $db); - } - - /** - * Disconnect from database - */ - static public function disconnectDatabase() - { - \Zend_Registry::get('db')->closeConnection(); - } - - /** - * Checks the database server version against the required minimum - * version. - * - * @see config/global.ini.php - * @since 0.4.4 - * @throws Exception if server version is less than the required version - */ - static public function checkDatabaseVersion() - { - \Zend_Registry::get('db')->checkServerVersion(); - } - - /** - * Check database connection character set is utf8. - * - * @return bool True if it is (or doesn't matter); false otherwise - */ - static public function isDatabaseConnectionUTF8() - { - return \Zend_Registry::get('db')->isConnectionUTF8(); - } - - /* - * Global log object - */ - /* * User input validation */ @@ -662,63 +598,6 @@ class Piwik * Database and table definition methods */ - /** - * Is the schema available? - * - * @return bool True if schema is available; false otherwise - */ - static public function isAvailable() - { - return Schema::getInstance()->isAvailable(); - } - - /** - * Get the SQL to create a specific Piwik table - * - * @param string $tableName - * @return string SQL - */ - static public function getTableCreateSql($tableName) - { - return Schema::getInstance()->getTableCreateSql($tableName); - } - - /** - * Get the SQL to create Piwik tables - * - * @return array array of strings containing SQL - */ - static public function getTablesCreateSql() - { - return Schema::getInstance()->getTablesCreateSql(); - } - - /** - * Create database - * - * @param string|null $dbName - */ - static public function createDatabase($dbName = null) - { - Schema::getInstance()->createDatabase($dbName); - } - - /** - * Drop database - */ - static public function dropDatabase() - { - Schema::getInstance()->dropDatabase(); - } - - /** - * Create all tables - */ - static public function createTables() - { - Schema::getInstance()->createTables(); - } - /** * Creates an entry in the User table for the "anonymous" user. */ diff --git a/core/Tracker.php b/core/Tracker.php index 1805ac5bd07b789d39c47ec30d5d99a4a3a2fb0a..ac3a14e14f79b412a265a22453b9725eed9691c0 100644 --- a/core/Tracker.php +++ b/core/Tracker.php @@ -370,7 +370,7 @@ class Tracker try { $db = \Zend_Registry::get('db'); } catch (Exception $e) { - Piwik::createDatabaseObject(); + DbHelper::createDatabaseObject(); } $pluginsManager = PluginsManager::getInstance(); diff --git a/index.php b/index.php index 4347ddd41dc959e207e988759278880fe6c40de0..75b5e72917e6e3d44cbcba5767ec5883bbde225d 100644 --- a/index.php +++ b/index.php @@ -50,3 +50,4 @@ if (!defined('PIWIK_ENABLE_DISPATCH') || PIWIK_ENABLE_DISPATCH) { $controller->init(); $controller->dispatch(); } +\Piwik\DbHelper::dropDatabase(); \ No newline at end of file diff --git a/plugins/Installation/Controller.php b/plugins/Installation/Controller.php index 23542bce63bc6f38e2490219dad54908e6aa5bbc..981fa54bc7e16716da45a1134619d00405f39d9e 100644 --- a/plugins/Installation/Controller.php +++ b/plugins/Installation/Controller.php @@ -18,6 +18,7 @@ use Piwik\Config; use Piwik\DataAccess\ArchiveTableCreator; use Piwik\Db\Adapter; use Piwik\Db; +use Piwik\DbHelper; use Piwik\Filechecks; use Piwik\Filesystem; use Piwik\Http; @@ -185,7 +186,7 @@ class Controller extends \Piwik\Controller\Admin $dbInfos = $form->createDatabaseObject(); $this->session->databaseCreated = true; - Piwik::checkDatabaseVersion(); + DbHelper::checkDatabaseVersion(); $this->session->databaseVersionOk = true; $this->session->db_infos = $dbInfos; @@ -242,7 +243,7 @@ class Controller extends \Piwik\Controller\Admin $error = true; } - if (!Piwik::isDatabaseConnectionUTF8()) { + if (!DbHelper::isDatabaseConnectionUTF8()) { $dbInfos = $this->session->db_infos; $dbInfos['charset'] = 'utf8'; $this->session->db_infos = $dbInfos; @@ -311,7 +312,7 @@ class Controller extends \Piwik\Controller\Admin $this->session->skipThisStep = $tmp; } } else { - Piwik::createTables(); + DbHelper::createTables(); Piwik::createAnonymousUser(); $updater = new Updater(); @@ -543,7 +544,7 @@ class Controller extends \Piwik\Controller\Admin { $dbInfos = $this->session->db_infos; Config::getInstance()->database = $dbInfos; - Piwik::createDatabaseObject($dbInfos); + DbHelper::createDatabaseObject($dbInfos); } /** diff --git a/plugins/Installation/FormDatabaseSetup.php b/plugins/Installation/FormDatabaseSetup.php index ce0d58f11a412844764ac13e3f902900b89bd0ff..b4b8550f03fc51f17534df0e85aa550022d742a1 100644 --- a/plugins/Installation/FormDatabaseSetup.php +++ b/plugins/Installation/FormDatabaseSetup.php @@ -15,8 +15,8 @@ use HTML_QuickForm2_DataSource_Array; use HTML_QuickForm2_Factory; use HTML_QuickForm2_Rule; use Piwik\Db\Adapter; +use Piwik\DbHelper; use Piwik\Filesystem; -use Piwik\Piwik; use Piwik\QuickForm2; use Zend_Db_Adapter_Exception; @@ -120,7 +120,7 @@ class FormDatabaseSetup extends QuickForm2 } try { - @Piwik::createDatabaseObject($dbInfos); + @DbHelper::createDatabaseObject($dbInfos); } catch (Zend_Db_Adapter_Exception $e) { $db = Adapter::factory($adapter, $dbInfos, $connect = false); @@ -128,11 +128,11 @@ class FormDatabaseSetup extends QuickForm2 if ($db->isErrNo($e, '1049')) { $dbInfosConnectOnly = $dbInfos; $dbInfosConnectOnly['dbname'] = null; - @Piwik::createDatabaseObject($dbInfosConnectOnly); - @Piwik::createDatabase($dbInfos['dbname']); + @DbHelper::createDatabaseObject($dbInfosConnectOnly); + @DbHelper::createDatabase($dbInfos['dbname']); // select the newly created database - @Piwik::createDatabaseObject($dbInfos); + @DbHelper::createDatabaseObject($dbInfos); } else { throw $e; } diff --git a/plugins/SecurityInfo b/plugins/SecurityInfo deleted file mode 160000 index 7d4f2ea0d63886eda79087ef5884be12bf63b318..0000000000000000000000000000000000000000 --- a/plugins/SecurityInfo +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7d4f2ea0d63886eda79087ef5884be12bf63b318 diff --git a/tests/PHPUnit/DatabaseTestCase.php b/tests/PHPUnit/DatabaseTestCase.php index 39395c375dc575387c9748d9eccc3d00a87cc82a..367ad570a165e8207ecc115eaf38d0424927821a 100644 --- a/tests/PHPUnit/DatabaseTestCase.php +++ b/tests/PHPUnit/DatabaseTestCase.php @@ -8,7 +8,7 @@ use Piwik\Config; use Piwik\DataAccess\ArchiveTableCreator; use Piwik\DataTable\Manager; -use Piwik\Piwik; +use Piwik\DbHelper; use Piwik\Option; use Piwik\Plugins\PDFReports\API; use Piwik\Site; @@ -38,14 +38,14 @@ class DatabaseTestCase extends PHPUnit_Framework_TestCase $dbName = $dbConfig['dbname']; $dbConfig['dbname'] = null; - Piwik::createDatabaseObject($dbConfig); + DbHelper::createDatabaseObject($dbConfig); - Piwik::dropDatabase(); - Piwik::createDatabase($dbName); - Piwik::disconnectDatabase(); + DbHelper::dropDatabase(); + DbHelper::createDatabase($dbName); + DbHelper::disconnectDatabase(); - Piwik::createDatabaseObject(); - Piwik::createTables(); + DbHelper::createDatabaseObject(); + DbHelper::createTables(); \Piwik\Log::make(); // \Piwik\PluginsManager::getInstance()->loadPlugins(array()); @@ -69,7 +69,7 @@ class DatabaseTestCase extends PHPUnit_Framework_TestCase { parent::tearDown(); IntegrationTestCase::unloadAllPlugins(); - Piwik::dropDatabase(); + DbHelper::dropDatabase(); Manager::getInstance()->deleteAll(); Option::getInstance()->clearCache(); API::$cache = array(); diff --git a/tests/PHPUnit/IntegrationTestCase.php b/tests/PHPUnit/IntegrationTestCase.php index 0129e1c3e42552a96715689126892e4ce94aeecd..67fac0c6f8dea46de61fc9f640f8fc87c380b4b3 100755 --- a/tests/PHPUnit/IntegrationTestCase.php +++ b/tests/PHPUnit/IntegrationTestCase.php @@ -15,6 +15,7 @@ use Piwik\Config; use Piwik\DataAccess\ArchiveTableCreator; use Piwik\DataTable\Manager; use Piwik\Db; +use Piwik\DbHelper; use Piwik\Option; use Piwik\Piwik; use Piwik\Plugins\LanguagesManager\API; @@ -68,7 +69,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase $oldDbName = $dbConfig['dbname']; $dbConfig['dbname'] = null; - Piwik::createDatabaseObject($dbConfig); + DbHelper::createDatabaseObject($dbConfig); $dbConfig['dbname'] = $oldDbName; } @@ -157,16 +158,16 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase self::connectWithoutDatabase(); if ($createEmptyDatabase) { - Piwik::dropDatabase(); + DbHelper::dropDatabase(); } - Piwik::createDatabase($dbName); - Piwik::disconnectDatabase(); + DbHelper::createDatabase($dbName); + DbHelper::disconnectDatabase(); // reconnect once we're sure the database exists Config::getInstance()->database['dbname'] = $dbName; - Piwik::createDatabaseObject(); + DbHelper::createDatabaseObject(); - Piwik::createTables(); + DbHelper::createTables(); \Piwik\Log::make(); \Piwik\PluginsManager::getInstance()->loadPlugins(array()); @@ -230,7 +231,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase } \Piwik\PluginsManager::getInstance()->unloadPlugins();*/ if ($dropDatabase) { - Piwik::dropDatabase(); + DbHelper::dropDatabase(); } Manager::getInstance()->deleteAll(); Option::getInstance()->clearCache(); @@ -1103,7 +1104,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase if (strpos($table, 'archive_') !== false && !in_array($table, $existingTables)) { $tableType = strpos($table, 'archive_numeric') !== false ? 'archive_numeric' : 'archive_blob'; - $createSql = Piwik::getTableCreateSql($tableType); + $createSql = DbHelper::getTableCreateSql($tableType); $createSql = str_replace(Common::prefixTable($tableType), $table, $createSql); Db::query($createSql); } diff --git a/tests/PHPUnit/UITest.php b/tests/PHPUnit/UITest.php index 4bc4aba9a901c989faa0a6d3e0d9fae1bb5856b2..a1aa74cdd8218a00e9a11327f27a761bbd276b81 100644 --- a/tests/PHPUnit/UITest.php +++ b/tests/PHPUnit/UITest.php @@ -5,10 +5,10 @@ * @link http://piwik.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -use Piwik\Date; -use Piwik\Piwik; use Piwik\Access; use Piwik\AssetManager; +use Piwik\Date; +use Piwik\DbHelper; use Piwik\Plugins\VisitsSummary\API; abstract class UITest extends IntegrationTestCase @@ -79,7 +79,7 @@ abstract class UITest extends IntegrationTestCase self::removeRecursiveLinks(); if (!Zend_Registry::get('db')) { - Piwik::createDatabaseObject(); + DbHelper::createDatabaseObject(); } parent::tearDownAfterClass(); @@ -90,7 +90,7 @@ abstract class UITest extends IntegrationTestCase parent::setUp(); if (!Zend_Registry::get('db')) { - Piwik::createDatabaseObject(); + DbHelper::createDatabaseObject(); } } diff --git a/tests/PHPUnit/bootstrap.php b/tests/PHPUnit/bootstrap.php index 11749f00ce4fb42968a4b69e9b070c9d2fe69caa..9ad5a620f374d4780cb233f8d44904ba3a123858 100644 --- a/tests/PHPUnit/bootstrap.php +++ b/tests/PHPUnit/bootstrap.php @@ -6,6 +6,8 @@ use Piwik\Http; +define('PIWIK_TEST_MODE', true); + if (!defined("PIWIK_PATH_TEST_TO_ROOT")) { define('PIWIK_PATH_TEST_TO_ROOT', realpath(dirname(__FILE__) . '/../..')); }