From 57f256912aa1921654771a6f369a7c8041151caf Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Fri, 30 Dec 2022 19:53:30 +0100 Subject: [PATCH] Leverage new ArrayParameterType constants (#10352) --- composer.json | 2 +- .../Persisters/Entity/BasicEntityPersister.php | 7 ++++--- lib/Doctrine/ORM/Query/ParameterTypeInferer.php | 6 +++--- .../Tests/ORM/Query/ParameterTypeInfererTest.php | 16 ++++++++-------- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/composer.json b/composer.json index 98a6acca518..3c5a837c474 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,7 @@ "ext-ctype": "*", "doctrine/collections": "^2.1", "doctrine/common": "^3.3", - "doctrine/dbal": "^3.5", + "doctrine/dbal": "^3.6@dev", "doctrine/deprecations": "^0.5.3 || ^1", "doctrine/event-manager": "^1.2 || ^2", "doctrine/inflector": "^1.4 || ^2.0", diff --git a/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php b/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php index 6921d580f3c..039696f1fd9 100644 --- a/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php +++ b/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php @@ -8,6 +8,7 @@ use Doctrine\Common\Collections\Criteria; use Doctrine\Common\Collections\Expr\Comparison; use Doctrine\Common\Util\ClassUtils; +use Doctrine\DBAL\ArrayParameterType; use Doctrine\DBAL\Connection; use Doctrine\DBAL\LockMode; use Doctrine\DBAL\ParameterType; @@ -1885,9 +1886,9 @@ private function getArrayBindingType(ParameterType|int|string $type): int } return match ($type) { - ParameterType::STRING => Connection::PARAM_STR_ARRAY, - ParameterType::INTEGER => Connection::PARAM_INT_ARRAY, - ParameterType::ASCII => Connection::PARAM_ASCII_STR_ARRAY, + ParameterType::STRING => ArrayParameterType::STRING, + ParameterType::INTEGER => ArrayParameterType::INTEGER, + ParameterType::ASCII => ArrayParameterType::ASCII, }; } diff --git a/lib/Doctrine/ORM/Query/ParameterTypeInferer.php b/lib/Doctrine/ORM/Query/ParameterTypeInferer.php index 1fe6cb03caa..51bcee79b06 100644 --- a/lib/Doctrine/ORM/Query/ParameterTypeInferer.php +++ b/lib/Doctrine/ORM/Query/ParameterTypeInferer.php @@ -8,7 +8,7 @@ use DateInterval; use DateTimeImmutable; use DateTimeInterface; -use Doctrine\DBAL\Connection; +use Doctrine\DBAL\ArrayParameterType; use Doctrine\DBAL\ParameterType; use Doctrine\DBAL\Types\Types; @@ -64,8 +64,8 @@ public static function inferType(mixed $value): ParameterType|int|string } return is_int($firstValue) - ? Connection::PARAM_INT_ARRAY - : Connection::PARAM_STR_ARRAY; + ? ArrayParameterType::INTEGER + : ArrayParameterType::STRING; } return ParameterType::STRING; diff --git a/tests/Doctrine/Tests/ORM/Query/ParameterTypeInfererTest.php b/tests/Doctrine/Tests/ORM/Query/ParameterTypeInfererTest.php index 2a2f4827faa..397cac522cd 100644 --- a/tests/Doctrine/Tests/ORM/Query/ParameterTypeInfererTest.php +++ b/tests/Doctrine/Tests/ORM/Query/ParameterTypeInfererTest.php @@ -7,7 +7,7 @@ use DateInterval; use DateTime; use DateTimeImmutable; -use Doctrine\DBAL\Connection; +use Doctrine\DBAL\ArrayParameterType; use Doctrine\DBAL\ParameterType; use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Query\ParameterTypeInferer; @@ -18,7 +18,7 @@ class ParameterTypeInfererTest extends OrmTestCase { - /** @psalm-return Generator */ + /** @psalm-return Generator */ public function providerParameterTypeInferer(): Generator { yield 'integer' => [1, Types::INTEGER]; @@ -27,15 +27,15 @@ public function providerParameterTypeInferer(): Generator yield 'datetime_object' => [new DateTime(), Types::DATETIME_MUTABLE]; yield 'datetime_immutable_object' => [new DateTimeImmutable(), Types::DATETIME_IMMUTABLE]; yield 'date_interval_object' => [new DateInterval('P1D'), Types::DATEINTERVAL]; - yield 'array_of_int' => [[2], Connection::PARAM_INT_ARRAY]; - yield 'array_of_string' => [['foo'], Connection::PARAM_STR_ARRAY]; - yield 'array_of_numeric_string' => [['1', '2'], Connection::PARAM_STR_ARRAY]; - yield 'empty_array' => [[], Connection::PARAM_STR_ARRAY]; + yield 'array_of_int' => [[2], ArrayParameterType::INTEGER]; + yield 'array_of_string' => [['foo'], ArrayParameterType::STRING]; + yield 'array_of_numeric_string' => [['1', '2'], ArrayParameterType::STRING]; + yield 'empty_array' => [[], ArrayParameterType::STRING]; yield 'boolean' => [true, Types::BOOLEAN]; yield 'int_backed_enum' => [AccessLevel::Admin, Types::INTEGER]; yield 'string_backed_enum' => [UserStatus::Active, Types::STRING]; - yield 'array_of_int_backed_enum' => [[AccessLevel::Admin], Connection::PARAM_INT_ARRAY]; - yield 'array_of_string_backed_enum' => [[UserStatus::Active], Connection::PARAM_STR_ARRAY]; + yield 'array_of_int_backed_enum' => [[AccessLevel::Admin], ArrayParameterType::INTEGER]; + yield 'array_of_string_backed_enum' => [[UserStatus::Active], ArrayParameterType::STRING]; } /** @dataProvider providerParameterTypeInferer */