diff --git a/composer.json b/composer.json index da785746..6b438d95 100644 --- a/composer.json +++ b/composer.json @@ -12,9 +12,6 @@ "require": { "php": "~7.1", "phpstan/phpstan": "^0.10", - "doctrine/common": "^2.7", - "doctrine/orm": "^2.5", - "doctrine/collections": "^1.0", "nikic/php-parser": "^4.0" }, "require-dev": { @@ -25,7 +22,15 @@ "phpstan/phpstan-phpunit": "^0.10", "phpstan/phpstan-strict-rules": "^0.10", "phpunit/phpunit": "^7.0", - "slevomat/coding-standard": "^4.5.2" + "slevomat/coding-standard": "^4.5.2", + "doctrine/common": "^2.7", + "doctrine/orm": "^2.5", + "doctrine/collections": "^1.0" + }, + "conflict": { + "doctrine/common": "<2.7", + "doctrine/orm": "<2.5", + "doctrine/collections": "<1.0" }, "autoload": { "psr-4": { diff --git a/src/Reflection/Doctrine/DoctrineSelectableClassReflectionExtension.php b/src/Reflection/Doctrine/DoctrineSelectableClassReflectionExtension.php index df79842f..a74c5244 100644 --- a/src/Reflection/Doctrine/DoctrineSelectableClassReflectionExtension.php +++ b/src/Reflection/Doctrine/DoctrineSelectableClassReflectionExtension.php @@ -2,7 +2,7 @@ namespace PHPStan\Reflection\Doctrine; -class DoctrineSelectableClassReflectionExtension implements \PHPStan\Reflection\MethodsClassReflectionExtension, \PHPStan\Reflection\BrokerAwareClassReflectionExtension +class DoctrineSelectableClassReflectionExtension implements \PHPStan\Reflection\MethodsClassReflectionExtension, \PHPStan\Reflection\BrokerAwareExtension { /** @var \PHPStan\Broker\Broker */ @@ -15,13 +15,13 @@ public function setBroker(\PHPStan\Broker\Broker $broker): void public function hasMethod(\PHPStan\Reflection\ClassReflection $classReflection, string $methodName): bool { - return $classReflection->getName() === \Doctrine\Common\Collections\Collection::class + return $classReflection->getName() === 'Doctrine\Common\Collections\Collection' && $methodName === 'matching'; } public function getMethod(\PHPStan\Reflection\ClassReflection $classReflection, string $methodName): \PHPStan\Reflection\MethodReflection { - $selectableReflection = $this->broker->getClass(\Doctrine\Common\Collections\Selectable::class); + $selectableReflection = $this->broker->getClass('Doctrine\Common\Collections\Selectable'); return $selectableReflection->getNativeMethod($methodName); } diff --git a/src/Type/Doctrine/DoctrineSelectableDynamicReturnTypeExtension.php b/src/Type/Doctrine/DoctrineSelectableDynamicReturnTypeExtension.php index d5801999..b03bb579 100644 --- a/src/Type/Doctrine/DoctrineSelectableDynamicReturnTypeExtension.php +++ b/src/Type/Doctrine/DoctrineSelectableDynamicReturnTypeExtension.php @@ -12,7 +12,7 @@ class DoctrineSelectableDynamicReturnTypeExtension implements \PHPStan\Type\Dyna public function getClass(): string { - return \Doctrine\Common\Collections\Collection::class; + return 'Doctrine\Common\Collections\Collection'; } public function isMethodSupported(MethodReflection $methodReflection): bool diff --git a/src/Type/Doctrine/EntityManagerFindDynamicReturnTypeExtension.php b/src/Type/Doctrine/EntityManagerFindDynamicReturnTypeExtension.php index 8c252b7c..2498cc8d 100644 --- a/src/Type/Doctrine/EntityManagerFindDynamicReturnTypeExtension.php +++ b/src/Type/Doctrine/EntityManagerFindDynamicReturnTypeExtension.php @@ -16,7 +16,7 @@ class EntityManagerFindDynamicReturnTypeExtension implements \PHPStan\Type\Dynam public function getClass(): string { - return \Doctrine\Common\Persistence\ObjectManager::class; + return 'Doctrine\Common\Persistence\ObjectManager'; } public function isMethodSupported(MethodReflection $methodReflection): bool diff --git a/src/Type/Doctrine/EntityManagerGetRepositoryDynamicReturnTypeExtension.php b/src/Type/Doctrine/EntityManagerGetRepositoryDynamicReturnTypeExtension.php index 8298c0f6..b383c18f 100644 --- a/src/Type/Doctrine/EntityManagerGetRepositoryDynamicReturnTypeExtension.php +++ b/src/Type/Doctrine/EntityManagerGetRepositoryDynamicReturnTypeExtension.php @@ -23,7 +23,7 @@ public function __construct(string $repositoryClass) public function getClass(): string { - return \Doctrine\Common\Persistence\ObjectManager::class; + return 'Doctrine\Common\Persistence\ObjectManager'; } public function isMethodSupported(MethodReflection $methodReflection): bool diff --git a/src/Type/Doctrine/EntityRepositoryDynamicReturnTypeExtension.php b/src/Type/Doctrine/EntityRepositoryDynamicReturnTypeExtension.php index d96afc95..b542508c 100644 --- a/src/Type/Doctrine/EntityRepositoryDynamicReturnTypeExtension.php +++ b/src/Type/Doctrine/EntityRepositoryDynamicReturnTypeExtension.php @@ -17,7 +17,7 @@ class EntityRepositoryDynamicReturnTypeExtension implements \PHPStan\Type\Dynami public function getClass(): string { - return \Doctrine\ORM\EntityRepository::class; + return 'Doctrine\ORM\EntityRepository'; } public function isMethodSupported(MethodReflection $methodReflection): bool diff --git a/src/Type/Doctrine/ObjectManagerMergeDynamicReturnTypeExtension.php b/src/Type/Doctrine/ObjectManagerMergeDynamicReturnTypeExtension.php index 9fbeef51..55651d28 100644 --- a/src/Type/Doctrine/ObjectManagerMergeDynamicReturnTypeExtension.php +++ b/src/Type/Doctrine/ObjectManagerMergeDynamicReturnTypeExtension.php @@ -13,7 +13,7 @@ class ObjectManagerMergeDynamicReturnTypeExtension implements \PHPStan\Type\Dyna public function getClass(): string { - return \Doctrine\Common\Persistence\ObjectManager::class; + return 'Doctrine\Common\Persistence\ObjectManager'; } public function isMethodSupported(MethodReflection $methodReflection): bool