private static function extendRequestFormats(Request $request, array $formats)
{
foreach ($formats as $format => $mimeTypes) {
if (method_exists(get_class($request), 'getMimeTypes')) {
$mimeTypes = array_merge($mimeTypes, Request::getMimeTypes($format));
} elseif (null !== $request->getMimeType($format)) {
$class = new \ReflectionClass(get_class($request));
$properties = $class->getStaticProperties();
if (isset($properties['formats'][$format])) {
$mimeTypes = array_merge($mimeTypes, $properties['formats'][$format]);
}
}
$request->setFormat($format, array_unique($mimeTypes));
}
}