本文整理汇总了PHP中Doctrine\DBAL\Migrations\Configuration\Configuration类的典型用法代码示例。如果您正苦于以下问题:PHP Configuration类的具体用法?PHP Configuration怎么用?PHP Configuration使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Configuration类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: boot
/**
* Bootstraps the application.
*
* This method is called after all services are registered
* and should be used for "dynamic" configuration (whenever
* a service must be requested).
*
* @param Application $app
*/
public function boot(Application $app)
{
$helperSet = new HelperSet(array('connection' => new ConnectionHelper($app['db']), 'dialog' => new DialogHelper()));
if (isset($app['orm.em'])) {
$helperSet->set(new EntityManagerHelper($app['orm.em']), 'em');
}
$this->console->setHelperSet($helperSet);
$commands = array('Doctrine\\DBAL\\Migrations\\Tools\\Console\\Command\\ExecuteCommand', 'Doctrine\\DBAL\\Migrations\\Tools\\Console\\Command\\GenerateCommand', 'Doctrine\\DBAL\\Migrations\\Tools\\Console\\Command\\MigrateCommand', 'Doctrine\\DBAL\\Migrations\\Tools\\Console\\Command\\StatusCommand', 'Doctrine\\DBAL\\Migrations\\Tools\\Console\\Command\\VersionCommand');
// @codeCoverageIgnoreStart
if (true === $this->console->getHelperSet()->has('em')) {
$commands[] = 'Doctrine\\DBAL\\Migrations\\Tools\\Console\\Command\\DiffCommand';
}
// @codeCoverageIgnoreEnd
$configuration = new Configuration($app['db'], $app['migrations.output_writer']);
$configuration->setMigrationsDirectory($app['migrations.directory']);
$configuration->setName($app['migrations.name']);
$configuration->setMigrationsNamespace($app['migrations.namespace']);
$configuration->setMigrationsTableName($app['migrations.table_name']);
$configuration->registerMigrationsFromDirectory($app['migrations.directory']);
foreach ($commands as $name) {
/** @var AbstractCommand $command */
$command = new $name();
$command->setMigrationConfiguration($configuration);
$this->console->add($command);
}
}
示例2: getSqliteConfiguration
/**
* @return Configuration
*/
public function getSqliteConfiguration()
{
$config = new Configuration($this->getSqliteConnection());
$config->setMigrationsDirectory(\sys_get_temp_dir());
$config->setMigrationsNamespace('DoctrineMigrations');
return $config;
}
示例3: getConnection
/**
* @see http://jamesmcfadden.co.uk/database-unit-testing-with-doctrine-2-and-phpunit/
*/
public function getConnection()
{
// 別途 Application を生成しているような箇所があると動作しないので注意
$app = EccubeTestCase::createApplication();
// Get an instance of your entity manager
$entityManager = $app['orm.em'];
// Retrieve PDO instance
$pdo = $entityManager->getConnection()->getWrappedConnection();
// Clear Doctrine to be safe
$entityManager->clear();
// Schema Tool to process our entities
$tool = new \Doctrine\ORM\Tools\SchemaTool($entityManager);
$classes = $entityManager->getMetaDataFactory()->getAllMetaData();
// Drop all classes and re-build them for each test case
$tool->dropSchema($classes);
$tool->createSchema($classes);
$config = new Configuration($app['db']);
$config->setMigrationsNamespace('DoctrineMigrations');
$migrationDir = __DIR__ . '/../../../src/Eccube/Resource/doctrine/migration';
$config->setMigrationsDirectory($migrationDir);
$config->registerMigrationsFromDirectory($migrationDir);
$migration = new Migration($config);
$migration->migrate(null, false);
self::$app = $app;
// Pass to PHPUnit
return $this->createDefaultDBConnection($pdo, 'db_name');
}
示例4: 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;
}
示例5: preUpdate
/**
* @param Connection $connection
* @param AppKernel $kernel
*/
public function preUpdate(Connection $connection, AppKernel $kernel)
{
/** @var \Symfony\Component\HttpKernel\Bundle\Bundle[] $bundles */
$bundles = $kernel->getBundles();
$isPortfolioBundleInstalled = false;
foreach ($bundles as $bundle) {
if ('IcapPortfolioBundle' === $bundle->getName()) {
$isPortfolioBundleInstalled = true;
}
}
if ($connection->getSchemaManager()->tablesExist(['icap__portfolio_widget_badges'])) {
if ($isPortfolioBundleInstalled) {
$this->log('Found existing database schema: skipping install migration...');
$config = new Configuration($connection);
$config->setMigrationsTableName('doctrine_icapbadgebundle_versions');
$config->setMigrationsNamespace('claro_badge');
// required but useless
$config->setMigrationsDirectory('claro_badge');
// idem
try {
$version = new Version($config, '20150929141509', 'stdClass');
$version->markMigrated();
} catch (\Exception $e) {
$this->log('Already migrated');
}
} else {
$this->log('Deleting badges tables for portfolio...');
$connection->getSchemaManager()->dropTable('icap__portfolio_widget_badges_badge');
$connection->getSchemaManager()->dropTable('icap__portfolio_widget_badges');
$this->log('badges tables for portfolio deleted.');
}
}
}
示例6: initializeDatabase
/**
* データベースを初期化する.
*
* データベースを初期化し、マイグレーションを行なう.
* 全てのデータが初期化されるため注意すること.
*
* @link http://jamesmcfadden.co.uk/database-unit-testing-with-doctrine-2-and-phpunit/
*/
public function initializeDatabase()
{
// Get an instance of your entity manager
$entityManager = $this->app['orm.em'];
// Retrieve PDO instance
$pdo = $entityManager->getConnection()->getWrappedConnection();
// Clear Doctrine to be safe
$entityManager->clear();
// Schema Tool to process our entities
$tool = new \Doctrine\ORM\Tools\SchemaTool($entityManager);
$classes = $entityManager->getMetaDataFactory()->getAllMetaData();
// Drop all classes and re-build them for each test case
$tool->dropSchema($classes);
$tool->createSchema($classes);
$config = new Configuration($this->app['db']);
$config->setMigrationsNamespace('DoctrineMigrations');
$migrationDir = __DIR__ . '/../../../src/Eccube/Resource/doctrine/migration';
$config->setMigrationsDirectory($migrationDir);
$config->registerMigrationsFromDirectory($migrationDir);
$migration = new Migration($config);
$migration->migrate(null, false);
// 通常は eccube_install.sh で追加されるデータを追加する
$sql = "INSERT INTO dtb_member (member_id, login_id, password, salt, work, del_flg, authority, creator_id, rank, update_date, create_date,name,department) VALUES (2, 'admin', 'test', 'test', 1, 0, 0, 1, 1, current_timestamp, current_timestamp,'管理者','EC-CUBE SHOP')";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$sql = "INSERT INTO dtb_base_info (id, shop_name, email01, email02, email03, email04, update_date, option_product_tax_rule) VALUES (1, 'SHOP_NAME', 'admin@example.com', 'admin@example.com', 'admin@example.com', 'admin@example.com', current_timestamp, 0)";
$stmt = $pdo->prepare($sql);
$stmt->execute();
}
示例7: generateMigrationSql
public function generateMigrationSql($return, &$hasMigrations)
{
$config = \Config::getInstance();
$modules = $config->getActiveModules();
$connection = $GLOBALS['container']['doctrine.connection.default'];
$output = new OutputWriter();
foreach ($modules as $module) {
$path = sprintf('%s/system/modules/%s/migrations', TL_ROOT, $module);
if (is_dir($path)) {
$namespace = preg_split('~[\\-_]~', $module);
$namespace = array_map('ucfirst', $namespace);
$namespace = implode('', $namespace);
$configuration = new Configuration($connection, $output);
$configuration->setName($module);
$configuration->setMigrationsNamespace('DoctrineMigrations\\' . $namespace);
$configuration->setMigrationsDirectory($path);
$configuration->registerMigrationsFromDirectory($path);
$migration = new Migration($configuration);
$versions = $migration->getSql();
if (count($versions)) {
foreach ($versions as $version => $queries) {
if (count($queries)) {
$_SESSION['TL_CONFIRM'][] = sprintf($GLOBALS['TL_LANG']['doctrine']['migration'], $module, $version);
$hasMigrations = true;
$return = $this->appendQueries($return, $queries);
}
}
}
}
}
return $return;
}
示例8: __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;
}
示例9: outputHeader
protected function outputHeader(Configuration $configuration, OutputInterface $output)
{
$name = $configuration->getName();
$name = $name ? $name : 'Doctrine Database Migrations';
$name = str_repeat(' ', 20) . $name . str_repeat(' ', 20);
$output->writeln('<question>' . str_repeat(' ', strlen($name)) . '</question>');
$output->writeln('<question>' . $name . '</question>');
$output->writeln('<question>' . str_repeat(' ', strlen($name)) . '</question>');
$output->writeln('');
}
示例10: __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);
}
示例11: showVersions
private function showVersions($migrations, Configuration $configuration, OutputInterface $output)
{
$migratedVersions = $configuration->getMigratedVersions();
foreach ($migrations as $version) {
$isMigrated = in_array($version->getVersion(), $migratedVersions);
$status = $isMigrated ? '<info>migrated</info>' : '<error>not migrated</error>';
$migrationDescription = $version->getMigration()->getDescription() ? str_repeat(' ', 5) . $version->getMigration()->getDescription() : '';
$formattedVersion = $configuration->getDateTime($version->getVersion());
$output->writeln(' <comment>>></comment> ' . $formattedVersion . ' (<comment>' . $version->getVersion() . '</comment>)' . str_repeat(' ', 49 - strlen($formattedVersion) - strlen($version->getVersion())) . $status . $migrationDescription);
}
}
示例12: _buildCodeFromSql
private function _buildCodeFromSql(Configuration $configuration, array $sql)
{
$code = array();
foreach ($sql as $query) {
if (strpos($query, $configuration->getMigrationsTableName()) !== false) {
continue;
}
$code[] = "\$this->_addSql('" . $query . "');";
}
return implode("\n", $code);
}
示例13: buildVersion
private function buildVersion($bundle, $version)
{
$bundle = strtolower($bundle);
$config = new Configuration($this->connection);
$config->setMigrationsTableName('doctrine_' . $bundle . '_versions');
$config->setMigrationsNamespace(ucfirst($bundle));
// required but useless
$config->setMigrationsDirectory(ucfirst($bundle));
// idem
return new Version($config, $version, 'stdClass');
}
示例14: 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);
}
示例15: migrationSchema
public function migrationSchema($app, $migrationFilePath, $pluginCode, $version = null)
{
$config = new Configuration($app['db']);
$config->setMigrationsNamespace('DoctrineMigrations');
$config->setMigrationsDirectory($migrationFilePath);
$config->registerMigrationsFromDirectory($migrationFilePath);
$config->setMigrationsTableName(self::MIGRATION_TABLE_PREFIX . $pluginCode);
$migration = new Migration($config);
// null 又は 'last' を渡すと最新バージョンまでマイグレートする
// 0か'first'を渡すと最初に戻る
$migration->migrate($version, false);
}