pathNormalizer = $pathNormalizer; } /** * @param \PHPStan\Reflection\ReflectionWithFilename|\PHPStan\Reflection\MethodReflection|\PHPStan\Reflection\FunctionReflection $reflection */ public function detectFunctionLikeReflection($reflection) : bool { $fileName = $this->resolveReflectionFileName($reflection); // probably internal if ($fileName === \false) { return \false; } $normalizedFileName = $this->pathNormalizer->normalizePath($fileName, '/'); return \strpos($normalizedFileName, '/vendor/') !== \false; } /** * @param \PHPStan\Reflection\MethodReflection|\PHPStan\Reflection\ReflectionWithFilename|\PHPStan\Reflection\FunctionReflection $reflection * @return string|bool */ private function resolveReflectionFileName($reflection) { if ($reflection instanceof \PHPStan\Reflection\ReflectionWithFilename) { return $reflection->getFileName(); } if ($reflection instanceof \PHPStan\Reflection\Php\PhpFunctionReflection) { return $reflection->getFileName(); } if ($reflection instanceof \PHPStan\Reflection\MethodReflection) { $declaringClassReflection = $reflection->getDeclaringClass(); return $declaringClassReflection->getFileName(); } return \false; } }