function RequestFormatRouteFilter::getAvailableFormats

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Routing/RequestFormatRouteFilter.php \Drupal\Core\Routing\RequestFormatRouteFilter::getAvailableFormats()
  2. 8.9.x core/lib/Drupal/Core/Routing/RequestFormatRouteFilter.php \Drupal\Core\Routing\RequestFormatRouteFilter::getAvailableFormats()
  3. 10 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.
RequestFormatRouteFilter::filter in core/lib/Drupal/Core/Routing/RequestFormatRouteFilter.php
Filters the route collection against a request.
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));
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.