From 8907e2e50b0bddc2597162014b16b39c76313ffd Mon Sep 17 00:00:00 2001 From: Sergei Predvoditelev Date: Tue, 25 Nov 2025 23:58:57 +0300 Subject: [PATCH 1/6] implement --- src/Column/ColumnDefinitionParser.php | 34 +++++++++++++++++++++++++++ src/Column/ColumnFactory.php | 7 ++++++ tests/ColumnDefinitionParserTest.php | 18 ++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 src/Column/ColumnDefinitionParser.php create mode 100644 tests/ColumnDefinitionParserTest.php diff --git a/src/Column/ColumnDefinitionParser.php b/src/Column/ColumnDefinitionParser.php new file mode 100644 index 00000000..8d7cdb91 --- /dev/null +++ b/src/Column/ColumnDefinitionParser.php @@ -0,0 +1,34 @@ + $this->parseSizeInfo($params), + default => [], + }; + } +} diff --git a/src/Column/ColumnFactory.php b/src/Column/ColumnFactory.php index 14ffe8d3..16f7a40b 100644 --- a/src/Column/ColumnFactory.php +++ b/src/Column/ColumnFactory.php @@ -8,6 +8,8 @@ use Yiisoft\Db\Schema\Column\AbstractColumnFactory; use Yiisoft\Db\Schema\Column\ColumnInterface; +use Yiisoft\Db\Syntax\ColumnDefinitionParserInterface; + use function str_replace; use function substr; @@ -85,4 +87,9 @@ protected function normalizeNotNullDefaultValue(string $defaultValue, ColumnInte return parent::normalizeNotNullDefaultValue($defaultValue, $column); } + + protected function columnDefinitionParser(): ColumnDefinitionParserInterface + { + return new ColumnDefinitionParser(); + } } diff --git a/tests/ColumnDefinitionParserTest.php b/tests/ColumnDefinitionParserTest.php new file mode 100644 index 00000000..7be72685 --- /dev/null +++ b/tests/ColumnDefinitionParserTest.php @@ -0,0 +1,18 @@ + Date: Wed, 26 Nov 2025 00:00:37 +0300 Subject: [PATCH 2/6] Add `ColumnDefinitionParser` class --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa617d4d..ff635156 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,7 @@ - Enh #387: Refactor `DMLQueryBuilder::upsert()` method (@Tigrov) - Chg #391: Update expression namespaces according to changes in `yiisoft/db` package (@Tigrov) - Chg #402: Throw exception on "unsigned" column usage (@vjik) +- Chg #405: Add `ColumnDefinitionParser` class (@vjik) ## 1.2.0 March 21, 2024 From 41202884199b321b1e0b55b1c88fb6edb1cc0b59 Mon Sep 17 00:00:00 2001 From: vjik <525501+vjik@users.noreply.github.com> Date: Tue, 25 Nov 2025 21:10:48 +0000 Subject: [PATCH 3/6] Apply PHP CS Fixer and Rector changes (CI) --- src/Column/ColumnFactory.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Column/ColumnFactory.php b/src/Column/ColumnFactory.php index 16f7a40b..ce7faca6 100644 --- a/src/Column/ColumnFactory.php +++ b/src/Column/ColumnFactory.php @@ -7,7 +7,6 @@ use Yiisoft\Db\Constant\ColumnType; use Yiisoft\Db\Schema\Column\AbstractColumnFactory; use Yiisoft\Db\Schema\Column\ColumnInterface; - use Yiisoft\Db\Syntax\ColumnDefinitionParserInterface; use function str_replace; From 5ce866b0b4edfaac7bff59716b31168d4b920bd8 Mon Sep 17 00:00:00 2001 From: Sergei Predvoditelev Date: Wed, 26 Nov 2025 00:23:57 +0300 Subject: [PATCH 4/6] fix ci --- .github/workflows/mutation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mutation.yml b/.github/workflows/mutation.yml index b00f9630..3a770ea2 100644 --- a/.github/workflows/mutation.yml +++ b/.github/workflows/mutation.yml @@ -59,6 +59,6 @@ jobs: - name: Run infection. run: | - vendor/bin/roave-infection-static-analysis-plugin --threads=2 --ignore-msi-with-no-mutations --only-covered + vendor/bin/roave-infection-static-analysis-plugin --threads=2 --ignore-msi-with-no-mutations env: STRYKER_DASHBOARD_API_KEY: ${{ secrets.STRYKER_DASHBOARD_API_KEY }} From e1838c86c9bb86cbeae2db791a9ae857595603c4 Mon Sep 17 00:00:00 2001 From: Sergei Predvoditelev Date: Wed, 26 Nov 2025 00:31:41 +0300 Subject: [PATCH 5/6] Update tests/ColumnDefinitionParserTest.php Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- tests/ColumnDefinitionParserTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/ColumnDefinitionParserTest.php b/tests/ColumnDefinitionParserTest.php index 7be72685..40b5aef3 100644 --- a/tests/ColumnDefinitionParserTest.php +++ b/tests/ColumnDefinitionParserTest.php @@ -2,6 +2,7 @@ declare(strict_types=1); +namespace Yiisoft\Db\Sqlite\Tests; use Yiisoft\Db\Sqlite\Column\ColumnDefinitionParser; use Yiisoft\Db\Syntax\ColumnDefinitionParserInterface; use Yiisoft\Db\Tests\Common\CommonColumnDefinitionParserTest; From 2ca850cd6e5eab62a68074b45aaff1a96037af21 Mon Sep 17 00:00:00 2001 From: vjik <525501+vjik@users.noreply.github.com> Date: Tue, 25 Nov 2025 21:33:36 +0000 Subject: [PATCH 6/6] Apply PHP CS Fixer and Rector changes (CI) --- tests/ColumnDefinitionParserTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/ColumnDefinitionParserTest.php b/tests/ColumnDefinitionParserTest.php index 40b5aef3..1317e76f 100644 --- a/tests/ColumnDefinitionParserTest.php +++ b/tests/ColumnDefinitionParserTest.php @@ -3,6 +3,7 @@ declare(strict_types=1); namespace Yiisoft\Db\Sqlite\Tests; + use Yiisoft\Db\Sqlite\Column\ColumnDefinitionParser; use Yiisoft\Db\Syntax\ColumnDefinitionParserInterface; use Yiisoft\Db\Tests\Common\CommonColumnDefinitionParserTest;