-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add processing binary binding type #11734
base: 3.3.x
Are you sure you want to change the base?
Changes from 8 commits
88e20bf
887550f
9469e1b
21816a6
49d1969
2208ce5
8fd08ca
83f2898
38ee7a8
5acde88
c409377
f564b56
daa875c
39566d5
df43dcb
3c40b39
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
<?php | ||
Check failure on line 1 in src/Persisters/Entity/BasicEntityPersister.php GitHub Actions / Static Analysis with PHPStan (default, phpstan.neon)
|
||
|
||
declare(strict_types=1); | ||
|
||
|
@@ -10,6 +10,7 @@ | |
use Doctrine\Common\Collections\Order; | ||
use Doctrine\DBAL\ArrayParameterType; | ||
use Doctrine\DBAL\Connection; | ||
use Doctrine\DBAL\Exception; | ||
use Doctrine\DBAL\LockMode; | ||
use Doctrine\DBAL\ParameterType; | ||
use Doctrine\DBAL\Platforms\AbstractPlatform; | ||
|
@@ -1929,17 +1930,24 @@ | |
return $types; | ||
} | ||
|
||
/** @phpstan-return ArrayParameterType::* */ | ||
private function getArrayBindingType(ParameterType|int|string $type): ArrayParameterType|int | ||
/** | ||
* @psalm-return ArrayParameterType::* | ||
* | ||
* @throws QueryException | ||
* @throws Exception | ||
*/ | ||
private function getArrayBindingType(ParameterType|int|string $type): ArrayParameterType | ||
Check failure on line 1939 in src/Persisters/Entity/BasicEntityPersister.php GitHub Actions / Static Analysis with PHPStan (3.8.2, phpstan-dbal3.neon)
|
||
{ | ||
if (! $type instanceof ParameterType) { | ||
$type = Type::getType((string) $type)->getBindingType(); | ||
} | ||
|
||
return match ($type) { | ||
Check failure on line 1945 in src/Persisters/Entity/BasicEntityPersister.php GitHub Actions / Static Analysis with PHPStan (3.8.2, phpstan-dbal3.neon)
|
||
ParameterType::STRING => ArrayParameterType::STRING, | ||
ParameterType::INTEGER => ArrayParameterType::INTEGER, | ||
ParameterType::ASCII => ArrayParameterType::ASCII, | ||
ParameterType::BINARY => ArrayParameterType::BINARY, | ||
default => throw new QueryException('Unsupported type for array parameter'), | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why do we need the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The default is necessary because not all ParameterType cases, such as BOOLEAN, LARGE_OBJECT, or NULL, are supported by ArrayParameterType. The default branch ensures these unsupported types are handled gracefully by throwing a clear exception, preventing unexpected behavior or runtime errors. |
||
}; | ||
} | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In what situations is this method raising these exception? Is the caller supposed to handle it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doctrine\DBAL\Types\Type::getType method throws Exception
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This answers neither the first nor the second of my questions. 😉
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This method doesn't handle these exceptions directly. I included them to show which ones the method can raise. If you think this is unnecessary, I’ll remove them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Exception removed. QueryException throws by this method