Skip to content

Commit

Permalink
Replace andX/orX with and/or
Browse files Browse the repository at this point in the history
  • Loading branch information
BenMorel committed Jan 27, 2020
1 parent c2b8e6e commit 6b36973
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 18 deletions.
6 changes: 6 additions & 0 deletions UPGRADE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
# Upgrade to 2.11

## Deprecated `ExpressionBuilder` methods

The usage of the `andX()` and `orX()` methods of the `ExpressionBuilder` class has been deprecated. Use `and()` and `or()` instead.

# Upgrade to 2.10

## Deprecated `Doctrine\DBAL\Event\ConnectionEventArgs` methods
Expand Down
38 changes: 29 additions & 9 deletions lib/Doctrine/DBAL/Query/Expression/ExpressionBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,41 +39,61 @@ public function __construct(Connection $connection)
}

/**
* Creates a conjunction of the given boolean expressions.
* Creates a conjunction of the given expressions.
*
* Example:
*
* [php]
* // (u.type = ?) AND (u.role = ?)
* $expr->andX('u.type = ?', 'u.role = ?'));
*
* @param mixed $x Optional clause. Defaults = null, but requires
* at least one defined when converting to string.
*
* @return CompositeExpression
* @param string|CompositeExpression ...$expressions Requires at least one defined when converting to string.
*/
public function andX($x = null)
public function and(...$expressions) : CompositeExpression
{
return new CompositeExpression(CompositeExpression::TYPE_AND, func_get_args());
return new CompositeExpression(CompositeExpression::TYPE_AND, $expressions);
}

/**
* Creates a disjunction of the given boolean expressions.
* Creates a disjunction of the given expressions.
*
* Example:
*
* [php]
* // (u.type = ?) OR (u.role = ?)
* $qb->where($qb->expr()->orX('u.type = ?', 'u.role = ?'));
*
* @param string|CompositeExpression ...$expressions Requires at least one defined when converting to string.
*/
public function or(...$expressions) : CompositeExpression
{
return new CompositeExpression(CompositeExpression::TYPE_OR, $expressions);
}

/**
* @deprecated Use `and()` instead.
*
* @param mixed $x Optional clause. Defaults = null, but requires
* at least one defined when converting to string.
*
* @return CompositeExpression
*/
public function andX($x = null)
{
return $this->and(...func_get_args());
}

/**
* @deprecated Use `and()` instead.
*
* @param mixed $x Optional clause. Defaults = null, but requires
* at least one defined when converting to string.
*
* @return CompositeExpression
*/
public function orX($x = null)
{
return new CompositeExpression(CompositeExpression::TYPE_OR, func_get_args());
return $this->or(...func_get_args());
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ protected function setUp() : void
/**
* @param string[]|CompositeExpression[] $parts
*
* @dataProvider provideDataForAndX
* @dataProvider provideDataForAnd
*/
public function testAndX(array $parts, string $expected) : void
public function testAnd(array $parts, string $expected) : void
{
$composite = $this->expr->andX();
$composite = $this->expr->and();

foreach ($parts as $part) {
$composite->add($part);
Expand All @@ -45,7 +45,7 @@ public function testAndX(array $parts, string $expected) : void
/**
* @return mixed[][]
*/
public static function provideDataForAndX() : iterable
public static function provideDataForAnd() : iterable
{
return [
[
Expand Down Expand Up @@ -90,11 +90,11 @@ public static function provideDataForAndX() : iterable
/**
* @param string[]|CompositeExpression[] $parts
*
* @dataProvider provideDataForOrX
* @dataProvider provideDataForOr
*/
public function testOrX(array $parts, string $expected) : void
public function testOr(array $parts, string $expected) : void
{
$composite = $this->expr->orX();
$composite = $this->expr->or();

foreach ($parts as $part) {
$composite->add($part);
Expand All @@ -106,7 +106,7 @@ public function testOrX(array $parts, string $expected) : void
/**
* @return mixed[][]
*/
public static function provideDataForOrX() : iterable
public static function provideDataForOr() : iterable
{
return [
[
Expand Down
2 changes: 1 addition & 1 deletion tests/Doctrine/Tests/DBAL/Query/QueryBuilderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public function testSelectWithSimpleWhere() : void

$qb->select('u.id')
->from('users', 'u')
->where($expr->andX($expr->eq('u.nickname', '?')));
->where($expr->and($expr->eq('u.nickname', '?')));

self::assertEquals('SELECT u.id FROM users u WHERE u.nickname = ?', (string) $qb);
}
Expand Down

0 comments on commit 6b36973

Please sign in to comment.