Skip to content

Commit 8f8e206

Browse files
authored
Remove "Condition" suffix from condition classes (#411)
1 parent 02c3bca commit 8f8e206

File tree

6 files changed

+44
-44
lines changed

6 files changed

+44
-44
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
- Chg #399: Rename `insertWithReturningPks()` to `insertReturningPks()` in `Command` and `DMLQueryBuilder` classes (@Tigrov)
4747
- Enh #403: Refactor `DMLQueryBuilder::upsert()`, allow use `EXCLUDED` table alias to access inserted values (@Tigrov)
4848
- Enh #405: Provide `yiisoft/db-implementation` virtual package (@vjik)
49-
- Enh #407, #408: Adapt to conditions refactoring in `yiisoft/db` package (@vjik)
49+
- Enh #407, #408, #411: Adapt to conditions refactoring in `yiisoft/db` package (@vjik)
5050

5151
## 1.2.0 March 21, 2024
5252

src/Builder/JsonOverlapsConditionBuilder.php renamed to src/Builder/JsonOverlapsBuilder.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,25 @@
1111
use Yiisoft\Db\Expression\ExpressionBuilderInterface;
1212
use Yiisoft\Db\Expression\ExpressionInterface;
1313
use Yiisoft\Db\Expression\JsonExpression;
14-
use Yiisoft\Db\QueryBuilder\Condition\JsonOverlapsCondition;
14+
use Yiisoft\Db\QueryBuilder\Condition\JsonOverlaps;
1515
use Yiisoft\Db\QueryBuilder\QueryBuilderInterface;
1616

1717
/**
18-
* Builds expressions for {@see JsonOverlapsCondition} for MySQL Server.
18+
* Builds expressions for {@see JsonOverlaps} for MySQL Server.
1919
*
20-
* @implements ExpressionBuilderInterface<JsonOverlapsCondition>
20+
* @implements ExpressionBuilderInterface<JsonOverlaps>
2121
*/
22-
final class JsonOverlapsConditionBuilder implements ExpressionBuilderInterface
22+
final class JsonOverlapsBuilder implements ExpressionBuilderInterface
2323
{
2424
public function __construct(
2525
private readonly QueryBuilderInterface $queryBuilder,
2626
) {
2727
}
2828

2929
/**
30-
* Build SQL for {@see JsonOverlapsCondition}.
30+
* Build SQL for {@see JsonOverlaps}.
3131
*
32-
* @param JsonOverlapsCondition $expression The {@see JsonOverlapsCondition} to be built.
32+
* @param JsonOverlaps $expression The {@see JsonOverlaps} to be built.
3333
*
3434
* @throws Exception
3535
* @throws InvalidArgumentException

src/Builder/LikeBuilder.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Yiisoft\Db\Mysql\Builder;
6+
7+
use Yiisoft\Db\QueryBuilder\Condition\Like;
8+
9+
/**
10+
* Build an object of {@see Like} into SQL expressions for MySQL Server.
11+
*/
12+
final class LikeBuilder extends \Yiisoft\Db\QueryBuilder\Condition\Builder\LikeBuilder
13+
{
14+
protected function prepareColumn(Like $expression, array &$params): string
15+
{
16+
$column = parent::prepareColumn($expression, $params);
17+
18+
if ($expression->caseSensitive === true) {
19+
$column = 'BINARY ' . $column;
20+
}
21+
22+
return $column;
23+
}
24+
}

src/Builder/LikeConditionBuilder.php

Lines changed: 0 additions & 24 deletions
This file was deleted.

src/DQLQueryBuilder.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
namespace Yiisoft\Db\Mysql;
66

77
use Yiisoft\Db\Expression\ExpressionInterface;
8-
use Yiisoft\Db\Mysql\Builder\JsonOverlapsConditionBuilder;
9-
use Yiisoft\Db\Mysql\Builder\LikeConditionBuilder;
8+
use Yiisoft\Db\Mysql\Builder\JsonOverlapsBuilder;
9+
use Yiisoft\Db\Mysql\Builder\LikeBuilder;
1010
use Yiisoft\Db\QueryBuilder\AbstractDQLQueryBuilder;
11-
use Yiisoft\Db\QueryBuilder\Condition\JsonOverlapsCondition;
12-
use Yiisoft\Db\QueryBuilder\Condition\LikeCondition;
11+
use Yiisoft\Db\QueryBuilder\Condition\JsonOverlaps;
12+
use Yiisoft\Db\QueryBuilder\Condition\Like;
1313

1414
use function ctype_digit;
1515

@@ -74,8 +74,8 @@ protected function defaultExpressionBuilders(): array
7474
{
7575
return [
7676
...parent::defaultExpressionBuilders(),
77-
JsonOverlapsCondition::class => JsonOverlapsConditionBuilder::class,
78-
LikeCondition::class => LikeConditionBuilder::class,
77+
JsonOverlaps::class => JsonOverlapsBuilder::class,
78+
Like::class => LikeBuilder::class,
7979
];
8080
}
8181
}

tests/QueryBuilderTest.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
use Yiisoft\Db\Mysql\Tests\Support\TestTrait;
1818
use Yiisoft\Db\Query\Query;
1919
use Yiisoft\Db\Query\QueryInterface;
20-
use Yiisoft\Db\QueryBuilder\Condition\JsonOverlapsCondition;
20+
use Yiisoft\Db\QueryBuilder\Condition\JsonOverlaps;
2121
use Yiisoft\Db\Schema\Column\ColumnInterface;
2222
use Yiisoft\Db\Tests\Common\CommonQueryBuilderTest;
2323

@@ -652,7 +652,7 @@ public function testSelectScalar(array|bool|float|int|string $columns, string $e
652652
parent::testSelectScalar($columns, $expected);
653653
}
654654

655-
public function testJsonOverlapsConditionBuilder(): void
655+
public function testJsonOverlapsBuilder(): void
656656
{
657657
$db = $this->getConnection();
658658
$serverVersion = $db->getServerInfo()->getVersion();
@@ -666,14 +666,14 @@ public function testJsonOverlapsConditionBuilder(): void
666666
$qb = $db->getQueryBuilder();
667667

668668
$params = [];
669-
$sql = $qb->buildExpression(new JsonOverlapsCondition('column', [1, 2, 3]), $params);
669+
$sql = $qb->buildExpression(new JsonOverlaps('column', [1, 2, 3]), $params);
670670

671671
$this->assertSame('JSON_OVERLAPS(`column`, :qp0)', $sql);
672672
$this->assertEquals([':qp0' => new Param('[1,2,3]', DataType::STRING)], $params);
673673

674674
// Test column as Expression
675675
$params = [];
676-
$sql = $qb->buildExpression(new JsonOverlapsCondition(new Expression('column'), [1, 2, 3]), $params);
676+
$sql = $qb->buildExpression(new JsonOverlaps(new Expression('column'), [1, 2, 3]), $params);
677677

678678
$this->assertSame('JSON_OVERLAPS(column, :qp0)', $sql);
679679
$this->assertEquals([':qp0' => new Param('[1,2,3]', DataType::STRING)], $params);
@@ -682,7 +682,7 @@ public function testJsonOverlapsConditionBuilder(): void
682682
}
683683

684684
#[DataProviderExternal(QueryBuilderProvider::class, 'overlapsCondition')]
685-
public function testJsonOverlapsCondition(iterable|ExpressionInterface $values, int $expectedCount): void
685+
public function testJsonOverlaps(iterable|ExpressionInterface $values, int $expectedCount): void
686686
{
687687
$db = $this->getConnection();
688688
$serverVersion = $db->getServerInfo()->getVersion();
@@ -697,7 +697,7 @@ public function testJsonOverlapsCondition(iterable|ExpressionInterface $values,
697697

698698
$count = (new Query($db))
699699
->from('json_type')
700-
->where(new JsonOverlapsCondition('json_col', $values))
700+
->where(new JsonOverlaps('json_col', $values))
701701
->count();
702702

703703
$this->assertSame($expectedCount, $count);
@@ -706,7 +706,7 @@ public function testJsonOverlapsCondition(iterable|ExpressionInterface $values,
706706
}
707707

708708
#[DataProviderExternal(QueryBuilderProvider::class, 'overlapsCondition')]
709-
public function testJsonOverlapsConditionOperator(iterable|ExpressionInterface $values, int $expectedCount): void
709+
public function testJsonOverlapsOperator(iterable|ExpressionInterface $values, int $expectedCount): void
710710
{
711711
$db = $this->getConnection();
712712
$serverVersion = $db->getServerInfo()->getVersion();

0 commit comments

Comments
 (0)