Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'core/Db/Schema.php')
-rw-r--r--core/Db/Schema.php282
1 files changed, 0 insertions, 282 deletions
diff --git a/core/Db/Schema.php b/core/Db/Schema.php
deleted file mode 100644
index 7afe91d0e8..0000000000
--- a/core/Db/Schema.php
+++ /dev/null
@@ -1,282 +0,0 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @category Piwik
- * @package Piwik
- */
-
-/**
- * Schema abstraction
- *
- * Note: no relation to the ZF proposals for Zend_Db_Schema_Manager
- *
- * @package Piwik
- * @subpackage Piwik_Db
- */
-class Piwik_Db_Schema
-{
- static private $instance = null;
-
- private $schema = null;
-
- /**
- * Returns the singleton Piwik_Db_Schema
- *
- * @return Piwik_Db_Schema
- */
- static public function getInstance()
- {
- if (self::$instance === null)
- {
- $c = __CLASS__;
- self::$instance = new $c();
- }
- return self::$instance;
- }
-
- /**
- * Get schema class name
- *
- * @param string $schemaName
- * @return string
- */
- private static function getSchemaClassName($schemaName)
- {
- return 'Piwik_Db_Schema_' . str_replace(' ', '_', ucwords(str_replace('_', ' ', strtolower($schemaName))));
- }
-
- /**
- * Get list of schemas
- *
- * @return array
- */
- public static function getSchemas($adapterName)
- {
- static $allSchemaNames = array(
- // MySQL storage engines
- 'MYSQL' => array(
- 'Myisam',
-// 'Innodb',
-// 'Infinidb',
- ),
-
- // Microsoft SQL Server
-// 'MSSQL' => array( 'Mssql' ),
-
- // PostgreSQL
-// 'PDO_PGSQL' => array( 'Pgsql' ),
-
- // IBM DB2
-// 'IBM' => array( 'Ibm' ),
-
- // Oracle
-// 'OCI' => array( 'Oci' ),
- );
-
- $adapterName = strtoupper($adapterName);
- switch($adapterName)
- {
- case 'PDO_MYSQL':
- case 'MYSQLI':
- $adapterName = 'MYSQL';
- break;
-
- case 'PDO_MSSQL':
- case 'SQLSRV':
- $adapterName = 'MSSQL';
- break;
-
- case 'PDO_IBM':
- case 'DB2':
- $adapterName = 'IBM';
- break;
-
- case 'PDO_OCI':
- case 'ORACLE':
- $adapterName = 'OCI';
- break;
- }
- $schemaNames = $allSchemaNames[$adapterName];
-
- $schemas = array();
-
- foreach($schemaNamess as $schemaName)
- {
- $className = 'Piwik_Db_Schema_'.$schemaName;
- if(call_user_func(array($className, 'isAvailable')))
- {
- $schemas[] = $schemaName;
- }
- }
-
- return $schemas;
- }
-
- /**
- * Load schema
- */
- private function loadSchema()
- {
- $schema = null;
- Piwik_PostEvent('Schema.loadSchema', $schema);
- if($schema === null)
- {
- $config = Zend_Registry::get('config');
- $dbInfos = $config->database->toArray();
- if(isset($dbInfos['schema']))
- {
- $schemaName = $dbInfos['schema'];
- }
- else
- {
- $schemaName = 'Myisam';
- }
- $className = self::getSchemaClassName($schemaName);
- $schema = new $className();
- }
- $this->schema = $schema;
- }
-
- /**
- * Returns an instance that subclasses Piwik_Db_Schema
- *
- * @return Piwik_Db_Schema_Interface
- */
- private function getSchema()
- {
- if ($this->schema === null)
- {
- $this->loadSchema();
- }
- return $this->schema;
- }
-
- /**
- * Get the SQL to create a specific Piwik table
- *
- * @return string SQL
- */
- public function getTableCreateSql( $tableName )
- {
- return $this->getSchema()->getTableCreateSql($tableName);
- }
-
- /**
- * Get the SQL to create Piwik tables
- *
- * @return array of strings containing SQL
- */
- public function getTablesCreateSql()
- {
- return $this->getSchema()->getTablesCreateSql();
- }
-
- /**
- * Create database
- */
- public function createDatabase( $dbName = null )
- {
- $this->getSchema()->createDatabase($dbName);
- }
-
- /**
- * Drop database
- */
- public function dropDatabase()
- {
- $this->getSchema()->dropDatabase();
- }
-
- /**
- * Create all tables
- */
- public function createTables()
- {
- $this->getSchema()->createTables();
- }
-
- /**
- * Creates an entry in the User table for the "anonymous" user.
- */
- public function createAnonymousUser()
- {
- $this->getSchema()->createAnonymousUser();
- }
-
- /**
- * Truncate all tables
- */
- public function truncateAllTables()
- {
- $this->getSchema()->truncateAllTables();
- }
-
- /**
- * Drop specific tables
- */
- public function dropTables( $doNotDelete = array() )
- {
- $this->getSchema()->dropTables($doNotDelete);
- }
-
- /**
- * Names of all the prefixed tables in piwik
- * Doesn't use the DB
- *
- * @return array Table names
- */
- public function getTablesNames()
- {
- return $this->getSchema()->getTablesNames();
- }
-
- /**
- * Get list of tables installed
- *
- * @param bool $forceReload Invalidate cache
- * @param string $idSite
- * @return array Tables installed
- */
- public function getTablesInstalled($forceReload = true, $idSite = null)
- {
- return $this->getSchema()->getTablesInstalled($forceReload, $idSite);
- }
-
- /**
- * Returns true if Piwik tables exist
- *
- * @return bool True if tables exist; false otherwise
- */
- public function hasTables()
- {
- return $this->getSchema()->hasTables();
- }
-}
-
-/**
- * @package Piwik
- */
-interface Piwik_Db_Schema_Interface
-{
- static public function isAvailable();
-
- public function getTableCreateSql($tableName);
- public function getTablesCreateSql();
-
- public function createDatabase( $dbName = null );
- public function dropDatabase();
-
- public function createTables();
- public function createAnonymousUser();
- public function truncateAllTables();
- public function dropTables( $doNotDelete = array() );
-
- public function getTablesNames();
- public function getTablesInstalled($forceReload = true, $idSite = null);
- public function hasTables();
-}