Skip to content

Commit

Permalink
Remove ColumnFactory from ColumnBuilder
Browse files Browse the repository at this point in the history
  • Loading branch information
Tigrov committed Sep 16, 2024
1 parent 5d7855a commit d76d87c
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 19 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
- Enh #347, #353: Raise minimum PHP version to `^8.1` with minor refactoring (@Tigrov)
- Bug #349, #352: Restore connection if closed by connection timeout (@Tigrov)
- Enh #354: Separate column type constants (@Tigrov)
- Enh #355: Realize `ColumnBuilder` class (@Tigrov)

## 1.2.0 March 21, 2024

Expand Down
6 changes: 0 additions & 6 deletions src/Column/ColumnBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,6 @@

namespace Yiisoft\Db\Mysql\Column;

use Yiisoft\Db\Schema\Column\ColumnFactoryInterface;

final class ColumnBuilder extends \Yiisoft\Db\Schema\Column\ColumnBuilder
{
public static function columnFactory(): ColumnFactoryInterface
{
return new ColumnFactory();
}
}
7 changes: 4 additions & 3 deletions src/Connection.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@
use Throwable;
use Yiisoft\Db\Driver\Pdo\AbstractPdoConnection;
use Yiisoft\Db\Driver\Pdo\PdoCommandInterface;
use Yiisoft\Db\Mysql\Column\ColumnBuilder;
use Yiisoft\Db\Mysql\Column\ColumnFactory;
use Yiisoft\Db\QueryBuilder\QueryBuilderInterface;
use Yiisoft\Db\Schema\Column\ColumnFactoryInterface;
use Yiisoft\Db\Schema\QuoterInterface;
use Yiisoft\Db\Schema\SchemaInterface;
use Yiisoft\Db\Transaction\TransactionInterface;
Expand Down Expand Up @@ -64,9 +65,9 @@ public function createTransaction(): TransactionInterface
return new Transaction($this);
}

public function getColumnBuilderClass(): string
public function getColumnFactory(): ColumnFactoryInterface
{
return ColumnBuilder::class;
return new ColumnFactory();
}

public function getQueryBuilder(): QueryBuilderInterface
Expand Down
2 changes: 1 addition & 1 deletion src/Schema.php
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ protected function getCreateTableSql(TableSchemaInterface $table): string
*/
private function loadColumnSchema(array $info): ColumnSchemaInterface
{
$columnFactory = $this->db->getColumnBuilderClass()::columnFactory();
$columnFactory = $this->db->getColumnFactory();

$dbType = $info['type'];
/** @psalm-var ColumnInfoArray $info */
Expand Down
11 changes: 5 additions & 6 deletions tests/ColumnBuilderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

declare(strict_types=1);

use Yiisoft\Db\Mysql\Column\ColumnFactory;
namespace Yiisoft\Db\Mysql\Tests;

use Yiisoft\Db\Mysql\Column\ColumnBuilder;
use Yiisoft\Db\Mysql\Tests\Support\TestTrait;
use Yiisoft\Db\Tests\AbstractColumnBuilderTest;

Expand All @@ -13,11 +15,8 @@ class ColumnBuilderTest extends AbstractColumnBuilderTest
{
use TestTrait;

public function testColumnFactory(): void
public function getColumnBuilderClass(): string
{
$db = $this->getConnection();
$columnBuilderClass = $db->getColumnBuilderClass();

$this->assertInstanceOf(ColumnFactory::class, $columnBuilderClass::columnFactory());
return ColumnBuilder::class;
}
}
6 changes: 3 additions & 3 deletions tests/ConnectionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
use Yiisoft\Db\Exception\IntegrityException;
use Yiisoft\Db\Exception\InvalidConfigException;
use Yiisoft\Db\Exception\NotSupportedException;
use Yiisoft\Db\Mysql\Column\ColumnBuilder;
use Yiisoft\Db\Mysql\Column\ColumnFactory;
use Yiisoft\Db\Mysql\Tests\Support\TestTrait;
use Yiisoft\Db\Tests\Common\CommonConnectionTest;
use Yiisoft\Db\Transaction\TransactionInterface;
Expand Down Expand Up @@ -158,10 +158,10 @@ public function testNotRestartConnectionOnTimeoutInTransaction(): void
$db->createCommand('SELECT 1')->queryScalar();
}

public function testGetColumnBuilderClass(): void
public function testGetColumnFactory(): void
{
$db = $this->getConnection();

$this->assertSame(ColumnBuilder::class, $db->getColumnBuilderClass());
$this->assertInstanceOf(ColumnFactory::class, $db->getColumnFactory());
}
}

0 comments on commit d76d87c

Please sign in to comment.