本文整理汇总了PHP中Propel\Generator\Model\Database::hasTable方法的典型用法代码示例。如果您正苦于以下问题:PHP Database::hasTable方法的具体用法?PHP Database::hasTable怎么用?PHP Database::hasTable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Propel\Generator\Model\Database
的用法示例。
在下文中一共展示了Database::hasTable方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testTableInheritsSchema
public function testTableInheritsSchema()
{
$database = new Database();
$database->setPlatform(new SchemaPlatform());
$database->setSchema("Foo");
$table = new Table("Bar");
$database->addTable($table);
$this->assertTrue($database->hasTable("Foo.Bar"));
$this->assertFalse($database->hasTable("Bar"));
$database = new Database();
$database->setPlatform(new NoSchemaPlatform());
$database->addTable($table);
$this->assertFalse($database->hasTable("Foo.Bar"));
$this->assertTrue($database->hasTable("Bar"));
}
示例2: compareTables
/**
* Returns the number of differences.
*
* Compares the tables of the fromDatabase and the toDatabase, and modifies
* the inner databaseDiff if necessary.
*
* @param boolean $caseInsensitive
* @return integer
*/
public function compareTables($caseInsensitive = false)
{
$fromDatabaseTables = $this->fromDatabase->getTables();
$toDatabaseTables = $this->toDatabase->getTables();
$databaseDifferences = 0;
$platform = $this->toDatabase->getPlatform() ?: $this->fromDatabase->getPlatform();
// check for new tables in $toDatabase
foreach ($toDatabaseTables as $table) {
if ($platform) {
$platform->normalizeTable($table);
}
if (!$this->fromDatabase->hasTable($table->getName(), $caseInsensitive) && !$table->isSkipSql()) {
$this->databaseDiff->addAddedTable($table->getName(), $table);
$databaseDifferences++;
}
}
// check for removed tables in $toDatabase
foreach ($fromDatabaseTables as $table) {
if (!$this->toDatabase->hasTable($table->getName(), $caseInsensitive) && !$table->isSkipSql()) {
$this->databaseDiff->addRemovedTable($table->getName(), $table);
$databaseDifferences++;
}
}
// check for table differences
foreach ($fromDatabaseTables as $fromTable) {
if ($this->toDatabase->hasTable($fromTable->getName(), $caseInsensitive)) {
$toTable = $this->toDatabase->getTable($fromTable->getName(), $caseInsensitive);
$databaseDiff = TableComparator::computeDiff($fromTable, $toTable, $caseInsensitive);
if ($databaseDiff) {
$this->databaseDiff->addModifiedTable($fromTable->getName(), $databaseDiff);
$databaseDifferences++;
}
}
}
$renamed = [];
// check for table renamings
foreach ($this->databaseDiff->getAddedTables() as $addedTableName => $addedTable) {
foreach ($this->databaseDiff->getRemovedTables() as $removedTableName => $removedTable) {
if (!in_array($addedTableName, $renamed) && !TableComparator::computeDiff($addedTable, $removedTable, $caseInsensitive)) {
// no difference except the name, that's probably a renaming
$renamed[] = $addedTableName;
$this->databaseDiff->addRenamedTable($removedTableName, $addedTableName);
$this->databaseDiff->removeAddedTable($addedTableName);
$this->databaseDiff->removeRemovedTable($removedTableName);
$databaseDifferences--;
}
}
}
return $databaseDifferences;
}
示例3: compareTables
/**
* Returns the number of differences.
*
* Compares the tables of the fromDatabase and the toDatabase, and modifies
* the inner databaseDiff if necessary.
*
* @param boolean $caseInsensitive
* @return integer
*/
public function compareTables($caseInsensitive = false)
{
$fromDatabaseTables = $this->fromDatabase->getTables();
$toDatabaseTables = $this->toDatabase->getTables();
$databaseDifferences = 0;
// check for new tables in $toDatabase
foreach ($toDatabaseTables as $table) {
if ($this->isTableExcluded($table)) {
continue;
}
if (!$this->fromDatabase->hasTable($table->getName(), $caseInsensitive) && !$table->isSkipSql()) {
$this->databaseDiff->addAddedTable($table->getName(), $table);
$databaseDifferences++;
}
}
// check for removed tables in $toDatabase
if ($this->getRemoveTable()) {
foreach ($fromDatabaseTables as $table) {
if ($this->isTableExcluded($table)) {
continue;
}
if (!$this->toDatabase->hasTable($table->getName(), $caseInsensitive) && !$table->isSkipSql()) {
$this->databaseDiff->addRemovedTable($table->getName(), $table);
$databaseDifferences++;
}
}
}
// check for table differences
foreach ($fromDatabaseTables as $fromTable) {
if ($this->isTableExcluded($fromTable)) {
continue;
}
if ($this->toDatabase->hasTable($fromTable->getName(), $caseInsensitive)) {
$toTable = $this->toDatabase->getTable($fromTable->getName(), $caseInsensitive);
$databaseDiff = TableComparator::computeDiff($fromTable, $toTable, $caseInsensitive);
if ($databaseDiff) {
$this->databaseDiff->addModifiedTable($fromTable->getName(), $databaseDiff);
$databaseDifferences++;
}
}
}
// check for table renamings
foreach ($this->databaseDiff->getAddedTables() as $addedTableName => $addedTable) {
foreach ($this->databaseDiff->getRemovedTables() as $removedTableName => $removedTable) {
if (!TableComparator::computeDiff($addedTable, $removedTable, $caseInsensitive)) {
// no difference except the name, that's probably a renaming
if ($this->getWithRenaming()) {
$this->databaseDiff->addRenamedTable($removedTableName, $addedTableName);
$this->databaseDiff->removeAddedTable($addedTableName);
$this->databaseDiff->removeRemovedTable($removedTableName);
$databaseDifferences--;
} else {
$this->databaseDiff->addPossibleRenamedTable($removedTableName, $addedTableName);
}
// skip to the next added table
break;
}
}
}
return $databaseDifferences;
}
示例4: testAddArrayTable
public function testAddArrayTable()
{
$database = new Database();
$database->addTable(['name' => 'books']);
$database->addTable(['name' => 'authors']);
$database->addTable(['name' => 'categories', 'skipSql' => 'true']);
$database->addTable(['name' => 'publishers', 'readOnly' => 'true']);
$this->assertTrue($database->hasTable('books'));
$this->assertTrue($database->hasTable('books', true));
$this->assertFalse($database->hasTable('BOOKS'));
$this->assertTrue($database->hasTableByPhpName('Books'));
$this->assertInstanceOf('Propel\\Generator\\Model\\Table', $database->getTable('books'));
$this->assertInstanceOf('Propel\\Generator\\Model\\Table', $database->getTableByPhpName('Books'));
// 3 tables because read only table is excluded from the count
$this->assertSame(3, $database->countTables());
// 3 tables because skipped sql table is excluded from the count
$this->assertCount(3, $database->getTablesForSql());
}