protected function findEligibleConverterWithHighestPriority($converters, $source, $targetType)
{
if (!is_array($converters)) {
return null;
}
krsort($converters);
reset($converters);
foreach ($converters as $converter) {
if (is_string($converter)) {
$converter = $this->objectManager->get($converter);
}
/** @var TypeConverterInterface $converter */
if ($converter->getPriority() < 0) {
continue;
}
if ($converter->canConvertFrom($source, $targetType)) {
return $converter;
}
}
return null;
}