本文整理汇总了PHP中Doctrine\DBAL\Migrations\Configuration\Configuration::getConnection方法的典型用法代码示例。如果您正苦于以下问题:PHP Configuration::getConnection方法的具体用法?PHP Configuration::getConnection怎么用?PHP Configuration::getConnection使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doctrine\DBAL\Migrations\Configuration\Configuration
的用法示例。
在下文中一共展示了Configuration::getConnection方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getMigrationsInfos
public function getMigrationsInfos()
{
$numExecutedUnavailableMigrations = count($this->executedUnavailableMigrations);
$numNewMigrations = count(array_diff($this->availableMigrations, $this->executedMigrations));
$infos = ['Name' => $this->configuration->getName() ? $this->configuration->getName() : 'Doctrine Database Migrations', 'Database Driver' => $this->configuration->getConnection()->getDriver()->getName(), 'Database Name' => $this->configuration->getConnection()->getDatabase(), 'Configuration Source' => $this->configuration instanceof AbstractFileConfiguration ? $this->configuration->getFile() : 'manually configured', 'Version Table Name' => $this->configuration->getMigrationsTableName(), 'Version Column Name' => $this->configuration->getMigrationsColumnName(), 'Migrations Namespace' => $this->configuration->getMigrationsNamespace(), 'Migrations Directory' => $this->configuration->getMigrationsDirectory(), 'Previous Version' => $this->getFormattedVersionAlias('prev'), 'Current Version' => $this->getFormattedVersionAlias('current'), 'Next Version' => $this->getFormattedVersionAlias('next'), 'Latest Version' => $this->getFormattedVersionAlias('latest'), 'Executed Migrations' => count($this->executedMigrations), 'Executed Unavailable Migrations' => $numExecutedUnavailableMigrations, 'Available Migrations' => count($this->availableMigrations), 'New Migrations' => $numNewMigrations];
return $infos;
}
示例2: chosen
/**
* read the input and return a Configuration, returns `false` if the config
* is not supported
* @return Connection|null
*/
public function chosen()
{
if ($this->configuration) {
return $this->configuration->getConnection();
}
return null;
}
示例3: __construct
public function __construct(Version $version)
{
$this->configuration = $version->getConfiguration();
$this->outputWriter = $this->configuration->getOutputWriter();
$this->connection = $this->configuration->getConnection();
$this->sm = $this->connection->getSchemaManager();
$this->platform = $this->connection->getDatabasePlatform();
$this->version = $version;
}
示例4: getConnection
/**
* @param \Symfony\Component\Console\Input\InputInterface $input
*
* @return \Doctrine\DBAL\Connection
* @throws \Doctrine\DBAL\DBALException
*/
private function getConnection(InputInterface $input)
{
if (!$this->connection) {
if ($input->getOption('db-configuration')) {
if (!file_exists($input->getOption('db-configuration'))) {
throw new \InvalidArgumentException("The specified connection file is not a valid file.");
}
$params = (include $input->getOption('db-configuration'));
if (!is_array($params)) {
throw new \InvalidArgumentException('The connection file has to return an array with database configuration parameters.');
}
$this->connection = \Doctrine\DBAL\DriverManager::getConnection($params);
} elseif (file_exists('migrations-db.php')) {
$params = (include 'migrations-db.php');
if (!is_array($params)) {
throw new \InvalidArgumentException('The connection file has to return an array with database configuration parameters.');
}
$this->connection = \Doctrine\DBAL\DriverManager::getConnection($params);
} elseif ($this->getHelperSet()->has('connection')) {
$this->connection = $this->getHelper('connection')->getConnection();
} elseif ($this->configuration) {
$this->connection = $this->configuration->getConnection();
} else {
throw new \InvalidArgumentException('You have to specify a --db-configuration file or pass a Database Connection as a dependency to the Migrations.');
}
}
return $this->connection;
}
示例5: __construct
public function __construct(Configuration $configuration, $version, $class)
{
$this->_configuration = $configuration;
$this->_outputWriter = $configuration->getOutputWriter();
$this->_version = $version;
$this->_class = $class;
$this->_connection = $configuration->getConnection();
$this->_sm = $this->_connection->getSchemaManager();
$this->_platform = $this->_connection->getDatabasePlatform();
$this->_migration = new $class($this);
}
示例6: buildCodeFromSql
private function buildCodeFromSql(Configuration $configuration, array $sql)
{
$currentPlatform = $configuration->getConnection()->getDatabasePlatform()->getName();
$code = array("\$this->abortIf(\$this->connection->getDatabasePlatform()->getName() != \"{$currentPlatform}\", \"Migration can only be executed safely on '{$currentPlatform}'.\");", "");
foreach ($sql as $query) {
if (strpos($query, $configuration->getMigrationsTableName()) !== false) {
continue;
}
$code[] = "\$this->addSql(\"{$query}\");";
}
return implode("\n", $code);
}
示例7: getMigrationsInfos
public function getMigrationsInfos()
{
$formattedVersions = [];
foreach (['prev', 'current', 'next', 'latest'] as $alias) {
$version = $this->configuration->resolveVersionAlias($alias);
if ($version === null) {
if ($alias == 'next') {
$formattedVersions[$alias] = 'Already at latest version';
} elseif ($alias == 'prev') {
$formattedVersions[$alias] = 'Already at first version';
}
} elseif ($version === '0') {
$formattedVersions[$alias] = '<comment>0</comment>';
} else {
$formattedVersions[$alias] = $this->configuration->getDateTime($version) . ' (<comment>' . $version . '</comment>)';
}
}
$numExecutedUnavailableMigrations = count($this->executedUnavailableMigrations);
$numNewMigrations = count(array_diff($this->availableMigrations, $this->executedMigrations));
$infos = ['Name' => $this->configuration->getName() ? $this->configuration->getName() : 'Doctrine Database Migrations', 'Database Driver' => $this->configuration->getConnection()->getDriver()->getName(), 'Database Name' => $this->configuration->getConnection()->getDatabase(), 'Configuration Source' => $this->configuration instanceof AbstractFileConfiguration ? $this->configuration->getFile() : 'manually configured', 'Version Table Name' => $this->configuration->getMigrationsTableName(), 'Version Column Name' => $this->configuration->getMigrationsColumnName(), 'Migrations Namespace' => $this->configuration->getMigrationsNamespace(), 'Migrations Directory' => $this->configuration->getMigrationsDirectory(), 'Previous Version' => $formattedVersions['prev'], 'Current Version' => $formattedVersions['current'], 'Next Version' => $formattedVersions['next'], 'Latest Version' => $formattedVersions['latest'], 'Executed Migrations' => count($this->executedMigrations), 'Executed Unavailable Migrations' => $numExecutedUnavailableMigrations, 'Available Migrations' => count($this->availableMigrations), 'New Migrations' => $numNewMigrations];
return $infos;
}
示例8: testAddSql
public function testAddSql()
{
$this->config->registerMigration(1, 'Doctrine\\DBAL\\Migrations\\Tests\\Functional\\MigrateAddSqlTest');
$migration = new \Doctrine\DBAL\Migrations\Migration($this->config);
$migration->migrate(1);
$migrations = $this->config->getMigrations();
$this->assertTrue($migrations[1]->isMigrated());
$schema = $this->config->getConnection()->getSchemaManager()->createSchema();
$this->assertTrue($schema->hasTable('test_add_sql_table'));
$check = $this->config->getConnection()->fetchAll('select * from test_add_sql_table');
$this->assertNotEmpty($check);
$this->assertEquals('test', $check[0]['test']);
$migration->migrate(0);
$this->assertFalse($migrations[1]->isMigrated());
$schema = $this->config->getConnection()->getSchemaManager()->createSchema();
$this->assertFalse($schema->hasTable('test_add_sql_table'));
}
示例9: buildCodeFromSql
/**
* Returns PHP code for a migration file that "executes" the given
* array of SQL statements.
*
* @param \Doctrine\DBAL\Migrations\Configuration\Configuration $configuration
* @param array $sql
* @return string
*/
protected function buildCodeFromSql(\Doctrine\DBAL\Migrations\Configuration\Configuration $configuration, array $sql)
{
$currentPlatform = $configuration->getConnection()->getDatabasePlatform()->getName();
$code = array('$this->abortIf($this->connection->getDatabasePlatform()->getName() != "' . $currentPlatform . '");', '');
foreach ($sql as $query) {
if (strpos($query, $configuration->getMigrationsTableName()) !== false) {
continue;
}
$code[] = '$this->addSql("' . $query . '");';
}
return implode("\n", $code);
}
示例10: buildCodeFromSql
/**
* Returns PHP code for a migration file that "executes" the given
* array of SQL statements.
*
* @param \Doctrine\DBAL\Migrations\Configuration\Configuration $configuration
* @param array $sql
* @return string
*/
protected function buildCodeFromSql(\Doctrine\DBAL\Migrations\Configuration\Configuration $configuration, array $sql)
{
$currentPlatform = $configuration->getConnection()->getDatabasePlatform()->getName();
$code = array("\$this->abortIf(\$this->connection->getDatabasePlatform()->getName() != \"{$currentPlatform}\");", "");
foreach ($sql as $query) {
if (strpos($query, $configuration->getMigrationsTableName()) !== FALSE) {
continue;
}
$code[] = "\$this->addSql(\"{$query}\");";
}
return implode("\n", $code);
}
示例11: __construct
public function __construct(Configuration $configuration, $version, $class)
{
$this->configuration = $configuration;
$this->outputWriter = $configuration->getOutputWriter();
$this->class = $class;
$this->connection = $configuration->getConnection();
$this->sm = $this->connection->getSchemaManager();
$this->platform = $this->connection->getDatabasePlatform();
$this->migration = new $class($this);
$this->version = $this->migration->getName() ?: $version;
}
示例12: testGetConnection
public function testGetConnection()
{
$conn = $this->getSqliteConnection();
$config = new Configuration($conn);
$this->assertSame($conn, $config->getConnection());
}
示例13: buildCodeFromSql
/**
* Returns PHP code for a migration file that "executes" the given
* array of SQL statements.
*
* @param Configuration $configuration
* @param array $sql
* @return string
*/
protected function buildCodeFromSql(Configuration $configuration, array $sql)
{
$currentPlatform = $configuration->getConnection()->getDatabasePlatform()->getName();
$code = [];
foreach ($sql as $query) {
if (stripos($query, $configuration->getMigrationsTableName()) !== false) {
continue;
}
$code[] = sprintf('$this->addSql(%s);', var_export($query, true));
}
if (!empty($code)) {
array_unshift($code, sprintf('$this->abortIf($this->connection->getDatabasePlatform()->getName() != %s, %s);', var_export($currentPlatform, true), var_export(sprintf('Migration can only be executed safely on "%s".', $currentPlatform), true)), '');
}
return implode(chr(10), $code);
}
示例14: buildCodeFromSql
private function buildCodeFromSql(Configuration $configuration, array $sql)
{
$currentPlatform = $configuration->getConnection()->getDatabasePlatform()->getName();
$code = array();
foreach ($sql as $query) {
if (stripos($query, $configuration->getMigrationsTableName()) !== false) {
continue;
}
$code[] = sprintf("\$this->addSql(%s);", var_export($query, true));
}
if ($code) {
array_unshift($code, sprintf("\$this->abortIf(\$this->connection->getDatabasePlatform()->getName() != %s, %s);", var_export($currentPlatform, true), var_export(sprintf("Migration can only be executed safely on '%s'.", $currentPlatform), true)), "");
}
return implode("\n", $code);
}
示例15: buildCodeFromSql
private function buildCodeFromSql(Configuration $configuration, array $sql, $formatted = false, $lineLength = 120)
{
$currentPlatform = $configuration->getConnection()->getDatabasePlatform()->getName();
$code = [];
foreach ($sql as $query) {
if (stripos($query, $configuration->getMigrationsTableName()) !== false) {
continue;
}
if ($formatted) {
if (!class_exists('\\SqlFormatter')) {
throw new \InvalidArgumentException('The "--formatted" option can only be used if the sql formatter is installed.' . 'Please run "composer require jdorn/sql-formatter".');
}
$maxLength = $lineLength - 18 - 8;
// max - php code length - indentation
if (strlen($query) > $maxLength) {
$query = \SqlFormatter::format($query, false);
}
}
$code[] = sprintf("\$this->addSql(%s);", var_export($query, true));
}
if (!empty($code)) {
array_unshift($code, sprintf("\$this->abortIf(\$this->connection->getDatabasePlatform()->getName() !== %s, %s);", var_export($currentPlatform, true), var_export(sprintf("Migration can only be executed safely on '%s'.", $currentPlatform), true)), "");
}
return implode("\n", $code);
}