You are here

protected static function RequestFormatRouteFilter::getAvailableFormats in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Routing/RequestFormatRouteFilter.php \Drupal\Core\Routing\RequestFormatRouteFilter::getAvailableFormats()

Gets the set of formats across all routes in the collection.

Parameters

\Symfony\Component\Routing\RouteCollection $collection: The route collection to filter.

Return value

string[] All available formats.

3 calls to RequestFormatRouteFilter::getAvailableFormats()
EarlyFormatSetter::filter in core/modules/jsonapi/src/Routing/EarlyFormatSetter.php
Filters the route collection against a request and returns all matching routes.
RequestFormatRouteFilter::filter in core/lib/Drupal/Core/Routing/RequestFormatRouteFilter.php
Filters the route collection against a request and returns all matching routes.
RequestFormatRouteFilter::getDefaultFormat in core/lib/Drupal/Core/Routing/RequestFormatRouteFilter.php
Determines the default request format.

File

core/lib/Drupal/Core/Routing/RequestFormatRouteFilter.php, line 111

Class

RequestFormatRouteFilter
Provides a route filter, which filters by the request format.

Namespace

Drupal\Core\Routing

Code

protected static function getAvailableFormats(RouteCollection $collection) {
  $all_formats = array_reduce($collection
    ->all(), function (array $carry, Route $route) {

    // Routes without a '_format' requirement are assumed to require HTML.
    $route_formats = !$route
      ->hasRequirement('_format') ? [
      'html',
    ] : explode('|', $route
      ->getRequirement('_format'));
    return array_merge($carry, $route_formats);
  }, []);
  return array_unique(array_filter($all_formats));
}