本文整理汇总了PHP中Piwik\DbHelper::createDatabase方法的典型用法代码示例。如果您正苦于以下问题:PHP DbHelper::createDatabase方法的具体用法?PHP DbHelper::createDatabase怎么用?PHP DbHelper::createDatabase使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Piwik\DbHelper
的用法示例。
在下文中一共展示了DbHelper::createDatabase方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: performSetUp
public function performSetUp($setupEnvironmentOnly = false)
{
try {
if ($this->createConfig) {
Config::getInstance()->setTestEnvironment();
}
$this->dbName = $this->getDbName();
if ($this->persistFixtureData) {
$this->dropDatabaseInSetUp = false;
$this->dropDatabaseInTearDown = false;
$this->overwriteExisting = false;
$this->removeExistingSuperUser = false;
Config::getInstance()->database_tests['dbname'] = Config::getInstance()->database['dbname'] = $this->dbName;
$this->getTestEnvironment()->dbName = $this->dbName;
}
if ($this->dbName === false) {
// must be after test config is created
$this->dbName = Config::getInstance()->database['dbname'];
}
static::connectWithoutDatabase();
if ($this->dropDatabaseInSetUp || $this->resetPersistedFixture) {
$this->dropDatabase();
}
DbHelper::createDatabase($this->dbName);
DbHelper::disconnectDatabase();
// reconnect once we're sure the database exists
Config::getInstance()->database['dbname'] = $this->dbName;
Db::createDatabaseObject();
Db::get()->query("SET wait_timeout=28800;");
DbHelper::createTables();
\Piwik\Plugin\Manager::getInstance()->unloadPlugins();
} catch (Exception $e) {
static::fail("TEST INITIALIZATION FAILED: " . $e->getMessage() . "\n" . $e->getTraceAsString());
}
include "DataFiles/SearchEngines.php";
include "DataFiles/Socials.php";
include "DataFiles/Languages.php";
include "DataFiles/Countries.php";
include "DataFiles/Currencies.php";
include "DataFiles/LanguageToCountry.php";
include "DataFiles/Providers.php";
if (!$this->isFixtureSetUp()) {
DbHelper::truncateAllTables();
}
static::createAccessInstance();
// We need to be SU to create websites for tests
Piwik::setUserHasSuperUserAccess();
Cache::deleteTrackerCache();
static::loadAllPlugins($this->getTestEnvironment(), $this->testCaseClass, $this->extraPluginsToLoad);
self::updateDatabase();
self::installAndActivatePlugins();
$_GET = $_REQUEST = array();
$_SERVER['HTTP_REFERER'] = '';
// Make sure translations are loaded to check messages in English
if ($this->loadTranslations) {
Translate::reloadLanguage('en');
APILanguageManager::getInstance()->setLanguageForUser('superUserLogin', 'en');
}
FakeAccess::$superUserLogin = 'superUserLogin';
\Piwik\SettingsPiwik::$cachedKnownSegmentsToArchive = null;
\Piwik\CacheFile::$invalidateOpCacheBeforeRead = true;
if ($this->configureComponents) {
\Piwik\Plugins\PrivacyManager\IPAnonymizer::deactivate();
\Piwik\Plugins\PrivacyManager\DoNotTrackHeaderChecker::deactivate();
}
if ($this->createSuperUser) {
self::createSuperUser($this->removeExistingSuperUser);
}
if ($setupEnvironmentOnly) {
return;
}
$this->getTestEnvironment()->save();
$this->getTestEnvironment()->executeSetupTestEnvHook();
Piwik_TestingEnvironment::addSendMailHook();
if ($this->overwriteExisting || !$this->isFixtureSetUp()) {
$this->setUp();
$this->markFixtureSetUp();
$this->log("Database {$this->dbName} marked as successfully set up.");
} else {
$this->log("Using existing database {$this->dbName}.");
}
}
示例2: createDatabaseObject
/**
* Creates database object based on form data.
*
* @throws Exception|Zend_Db_Adapter_Exception
* @return array The database connection info. Can be passed into Piwik::createDatabaseObject.
*/
public function createDatabaseObject()
{
$dbname = $this->getSubmitValue('dbname');
if (empty($dbname)) {
throw new Exception("No database name");
}
$adapter = $this->getSubmitValue('adapter');
$port = Adapter::getDefaultPortForAdapter($adapter);
$dbInfos = array('host' => $this->getSubmitValue('host'), 'username' => $this->getSubmitValue('username'), 'password' => $this->getSubmitValue('password'), 'dbname' => $dbname, 'tables_prefix' => $this->getSubmitValue('tables_prefix'), 'adapter' => $adapter, 'port' => $port, 'schema' => Config::getInstance()->database['schema'], 'type' => $this->getSubmitValue('type'));
if (($portIndex = strpos($dbInfos['host'], '/')) !== false) {
// unix_socket=/path/sock.n
$dbInfos['port'] = substr($dbInfos['host'], $portIndex);
$dbInfos['host'] = '';
} else {
if (($portIndex = strpos($dbInfos['host'], ':')) !== false) {
// host:port
$dbInfos['port'] = substr($dbInfos['host'], $portIndex + 1);
$dbInfos['host'] = substr($dbInfos['host'], 0, $portIndex);
}
}
try {
@Db::createDatabaseObject($dbInfos);
} catch (Zend_Db_Adapter_Exception $e) {
$db = Adapter::factory($adapter, $dbInfos, $connect = false);
// database not found, we try to create it
if ($db->isErrNo($e, '1049')) {
$dbInfosConnectOnly = $dbInfos;
$dbInfosConnectOnly['dbname'] = null;
@Db::createDatabaseObject($dbInfosConnectOnly);
@DbHelper::createDatabase($dbInfos['dbname']);
// select the newly created database
@Db::createDatabaseObject($dbInfos);
} else {
throw $e;
}
}
return $dbInfos;
}
示例3: performSetUp
public function performSetUp($setupEnvironmentOnly = false)
{
// TODO: don't use static var, use test env var for this
TestingEnvironmentManipulator::$extraPluginsToLoad = $this->extraPluginsToLoad;
$this->dbName = $this->getDbName();
if ($this->persistFixtureData) {
$this->dropDatabaseInSetUp = false;
$this->dropDatabaseInTearDown = false;
$this->overwriteExisting = false;
$this->removeExistingSuperUser = false;
}
$testEnv = $this->getTestEnvironment();
$testEnv->testCaseClass = $this->testCaseClass;
$testEnv->fixtureClass = get_class($this);
$testEnv->dbName = $this->dbName;
$testEnv->extraDiEnvironments = $this->extraDiEnvironments;
foreach ($this->extraTestEnvVars as $name => $value) {
$testEnv->{$name} = $value;
}
$testEnv->save();
$this->createEnvironmentInstance();
if ($this->dbName === false) {
// must be after test config is created
$this->dbName = self::getConfig()->database['dbname'];
}
try {
static::connectWithoutDatabase();
if ($this->dropDatabaseInSetUp || $this->resetPersistedFixture) {
$this->dropDatabase();
}
DbHelper::createDatabase($this->dbName);
DbHelper::disconnectDatabase();
Tracker::disconnectCachedDbConnection();
// reconnect once we're sure the database exists
self::getConfig()->database['dbname'] = $this->dbName;
Db::createDatabaseObject();
Db::get()->query("SET wait_timeout=28800;");
DbHelper::createTables();
self::getPluginManager()->unloadPlugins();
} catch (Exception $e) {
static::fail("TEST INITIALIZATION FAILED: " . $e->getMessage() . "\n" . $e->getTraceAsString());
}
include "DataFiles/Providers.php";
if (!$this->isFixtureSetUp()) {
DbHelper::truncateAllTables();
}
// We need to be SU to create websites for tests
Access::getInstance()->setSuperUserAccess();
Cache::deleteTrackerCache();
self::resetPluginsInstalledConfig();
$testEnvironment = $this->getTestEnvironment();
static::loadAllPlugins($testEnvironment, $this->testCaseClass, $this->extraPluginsToLoad);
self::updateDatabase();
self::installAndActivatePlugins($testEnvironment);
$_GET = $_REQUEST = array();
$_SERVER['HTTP_REFERER'] = '';
FakeAccess::$superUserLogin = 'superUserLogin';
File::$invalidateOpCacheBeforeRead = true;
if ($this->configureComponents) {
IPAnonymizer::deactivate();
$dntChecker = new DoNotTrackHeaderChecker();
$dntChecker->deactivate();
}
if ($this->createSuperUser) {
self::createSuperUser($this->removeExistingSuperUser);
if (!Access::getInstance() instanceof FakeAccess) {
$this->loginAsSuperUser();
}
APILanguageManager::getInstance()->setLanguageForUser('superUserLogin', 'en');
}
SettingsPiwik::overwritePiwikUrl(self::getTestRootUrl());
if ($setupEnvironmentOnly) {
return;
}
PiwikCache::getTransientCache()->flushAll();
if ($this->overwriteExisting || !$this->isFixtureSetUp()) {
$this->setUp();
$this->markFixtureSetUp();
$this->log("Database {$this->dbName} marked as successfully set up.");
} else {
$this->log("Using existing database {$this->dbName}.");
}
}