public function getResourceClass($value, string $resourceClass = null, bool $strict = false) : string
{
if (is_object($value) && !$value instanceof PaginatorInterface) {
$typeToFind = $type = $this->getObjectClass($value);
if (null === $resourceClass) {
$resourceClass = $typeToFind;
}
} elseif (null === $resourceClass) {
throw new InvalidArgumentException(sprintf('No resource class found.'));
} else {
$typeToFind = $type = $resourceClass;
}
if ($strict && isset($type) && $resourceClass !== $type || !$this->isResourceClass($typeToFind)) {
if (is_subclass_of($type, $resourceClass) && $this->isResourceClass($resourceClass)) {
return $type;
}
throw new InvalidArgumentException(sprintf('No resource class found for object of type "%s"', $typeToFind));
}
return $resourceClass;
}