diff --git a/CHANGELOG.md b/CHANGELOG.md index 5644354..a5703b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,6 +55,7 @@ - Enh #340: Adapt to `Param` refactoring in `yiisoft/db` package (@vjik) - Enh #341, #342, #345: Adapt to conditions refactoring in `yiisoft/db` package (@vjik) - Enh #348: Remove `TableSchema` class and refactor `Schema` class (@Tigrov) +- Enh #350: Adapt to `Like` changes in `yiisoft/db` package (@vjik) ## 1.3.0 March 21, 2024 diff --git a/src/Builder/LikeBuilder.php b/src/Builder/LikeBuilder.php index 4f7c12e..a211558 100644 --- a/src/Builder/LikeBuilder.php +++ b/src/Builder/LikeBuilder.php @@ -7,7 +7,6 @@ use Yiisoft\Db\Expression\ExpressionInterface; use Yiisoft\Db\QueryBuilder\Condition\Like; use Yiisoft\Db\QueryBuilder\QueryBuilderInterface; -use Yiisoft\Db\Schema\Quoter; use function substr; @@ -28,29 +27,23 @@ final class LikeBuilder extends \Yiisoft\Db\QueryBuilder\Condition\Builder\LikeB '!' => '!!', ]; - public function __construct(private QueryBuilderInterface $queryBuilder) - { + public function __construct( + private readonly QueryBuilderInterface $queryBuilder, + ) { parent::__construct($queryBuilder, $this->getEscapeSql()); - } - - public function build(ExpressionInterface $expression, array &$params = []): string - { - if (!isset($this->escapingReplacements['\\'])) { - /* - * Different pdo_oci8 versions may or may not implement `PDO::quote()`, so {@see Quoter::quoteValue()} may or - * may not quote `\`. - */ - $this->escapingReplacements['\\'] = substr($this->queryBuilder->getQuoter()->quoteValue('\\'), 1, -1); - } - return parent::build($expression, $params); + /** + * Different pdo_oci8 versions may or may not implement `PDO::quote()`, so {@see Quoter::quoteValue()} may or + * may not quote `\`. + */ + $this->escapingReplacements['\\'] = substr($this->queryBuilder->getQuoter()->quoteValue('\\'), 1, -1); } - protected function prepareColumn(Like $expression, array &$params): string + protected function prepareColumn(Like $condition, array &$params): string { - $column = parent::prepareColumn($expression, $params); + $column = parent::prepareColumn($condition, $params); - if ($expression->caseSensitive === false) { + if ($condition->caseSensitive === false) { $column = 'LOWER(' . $column . ')'; } @@ -59,13 +52,12 @@ protected function prepareColumn(Like $expression, array &$params): string protected function preparePlaceholderName( string|ExpressionInterface $value, - Like $expression, - ?array $escape, + Like $condition, array &$params, ): string { - $placeholderName = parent::preparePlaceholderName($value, $expression, $escape, $params); + $placeholderName = parent::preparePlaceholderName($value, $condition, $params); - if ($expression->caseSensitive === false) { + if ($condition->caseSensitive === false) { $placeholderName = 'LOWER(' . $placeholderName . ')'; }