From d95308cfe370d9a262d4cb2e2265668afd8fc0c9 Mon Sep 17 00:00:00 2001 From: Reio Remma Date: Fri, 15 May 2026 01:11:11 +0300 Subject: [PATCH] Support Doctrine number type (BcMath\Number) --- extension.neon | 3 ++ phpstan-baseline-dbal-4.neon | 12 +++++++ src/Type/Doctrine/Descriptors/NumberType.php | 31 +++++++++++++++++++ .../Doctrine/ORM/EntityColumnRuleTest.php | 2 ++ 4 files changed, 48 insertions(+) create mode 100644 src/Type/Doctrine/Descriptors/NumberType.php diff --git a/extension.neon b/extension.neon index 8e2bfcca..664102a2 100644 --- a/extension.neon +++ b/extension.neon @@ -373,6 +373,9 @@ services: - class: PHPStan\Type\Doctrine\Descriptors\JsonType tags: [phpstan.doctrine.typeDescriptor] + - + class: PHPStan\Type\Doctrine\Descriptors\NumberType + tags: [phpstan.doctrine.typeDescriptor] - class: PHPStan\Type\Doctrine\Descriptors\ObjectType tags: [phpstan.doctrine.typeDescriptor] diff --git a/phpstan-baseline-dbal-4.neon b/phpstan-baseline-dbal-4.neon index 2e0880ce..1ef9f0b5 100644 --- a/phpstan-baseline-dbal-4.neon +++ b/phpstan-baseline-dbal-4.neon @@ -30,6 +30,18 @@ parameters: count: 1 path: src/Type/Doctrine/Query/QueryResultTypeWalker.php + - + message: '#^Class Doctrine\\DBAL\\Types\\NumberType not found\.$#' + identifier: class.notFound + count: 1 + path: src/Type/Doctrine/Descriptors/NumberType.php + + - + message: '#^Method PHPStan\\Type\\Doctrine\\Descriptors\\NumberType\:\:getType\(\) should return class\-string\ but returns string\.$#' + identifier: return.type + count: 1 + path: src/Type/Doctrine/Descriptors/NumberType.php + - rawMessage: ''' Call to method __construct() of deprecated class Doctrine\ORM\Mapping\Driver\AnnotationDriver: diff --git a/src/Type/Doctrine/Descriptors/NumberType.php b/src/Type/Doctrine/Descriptors/NumberType.php new file mode 100644 index 00000000..311555da --- /dev/null +++ b/src/Type/Doctrine/Descriptors/NumberType.php @@ -0,0 +1,31 @@ +toString(); + } + +} diff --git a/tests/Rules/Doctrine/ORM/EntityColumnRuleTest.php b/tests/Rules/Doctrine/ORM/EntityColumnRuleTest.php index 5fd80dcc..a29a1d57 100644 --- a/tests/Rules/Doctrine/ORM/EntityColumnRuleTest.php +++ b/tests/Rules/Doctrine/ORM/EntityColumnRuleTest.php @@ -21,6 +21,7 @@ use PHPStan\Type\Doctrine\Descriptors\EnumType; use PHPStan\Type\Doctrine\Descriptors\IntegerType; use PHPStan\Type\Doctrine\Descriptors\JsonType; +use PHPStan\Type\Doctrine\Descriptors\NumberType; use PHPStan\Type\Doctrine\Descriptors\Ramsey\UuidTypeDescriptor as RamseyUuidTypeDescriptor; use PHPStan\Type\Doctrine\Descriptors\ReflectionDescriptor; use PHPStan\Type\Doctrine\Descriptors\SimpleArrayType; @@ -95,6 +96,7 @@ protected function getRule(): Rule new DecimalType(new DriverDetector()), new JsonType(), new IntegerType(), + new NumberType(), new StringType(), new SimpleArrayType(), new EnumType(),