class LanguageNegotiationUrl extends LanguageNegotiationMethodBase implements InboundPathProcessorInterface, OutboundPathProcessorInterface, LanguageSwitcherInterface (View source)

Class for identifying language via URL prefix or domain.

Constants

METHOD_ID

The language negotiation method id.

CONFIG_PATH_PREFIX

URL language negotiation: use the path prefix as URL language indicator.

CONFIG_DOMAIN

URL language negotiation: use the domain as URL language indicator.

Properties

protected LanguageManagerInterface $languageManager

The language manager.

from  LanguageNegotiationMethodBase
protected ConfigFactoryInterface $config

The configuration factory.

from  LanguageNegotiationMethodBase
protected AccountInterface $currentUser

The current active user.

from  LanguageNegotiationMethodBase

Methods

setLanguageManager(ConfigurableLanguageManagerInterface $language_manager)

Injects the language manager.

setConfig(ConfigFactoryInterface $config)

Injects the configuration factory.

setCurrentUser(AccountInterface $current_user)

Injects the current user.

persist(LanguageInterface $language)

Notifies the plugin that the language code it returned has been accepted.

string
getLangcode(Request $request = NULL)

Performs language negotiation.

string
processInbound(string $path, Request $request)

Processes the inbound path.

string
processOutbound(string $path, array $options = [], Request $request = NULL, BubbleableMetadata $bubbleable_metadata = NULL)

Processes the outbound path.

array
getLanguageSwitchLinks(Request $request, string $type, Url $url)

Returns language switch links.

Details

setLanguageManager(ConfigurableLanguageManagerInterface $language_manager)

Injects the language manager.

Parameters

ConfigurableLanguageManagerInterface $language_manager

The language manager to be used to retrieve the language list and the already negotiated languages.

setConfig(ConfigFactoryInterface $config)

Injects the configuration factory.

Parameters

ConfigFactoryInterface $config

The configuration factory.

setCurrentUser(AccountInterface $current_user)

Injects the current user.

Parameters

AccountInterface $current_user

The current active user.

persist(LanguageInterface $language)

Notifies the plugin that the language code it returned has been accepted.

Parameters

LanguageInterface $language

The accepted language.

string getLangcode(Request $request = NULL)

Performs language negotiation.

Parameters

Request $request

(optional) The current request. Defaults to NULL if it has not been initialized yet.

Return Value

string

A valid language code or FALSE if the negotiation was unsuccessful.

string processInbound(string $path, Request $request)

Processes the inbound path.

Implementations may make changes to the request object passed in but should avoid all other side effects. This method can be called to process requests other than the current request.

Parameters

string $path

The path to process, with a leading slash.

Request $request

The HttpRequest object representing the request to process. Note, if this method is being called via the path_processor_manager service and is not part of routing, the current request object must be cloned before being passed in.

Return Value

string

The processed path.

string processOutbound(string $path, array $options = [], Request $request = NULL, BubbleableMetadata $bubbleable_metadata = NULL)

Processes the outbound path.

Parameters

string $path

The path to process, with a leading slash.

array $options

(optional) An associative array of additional options, with the following elements:

  • 'query': An array of query key/value-pairs (without any URL-encoding) to append to the URL.
  • 'fragment': A fragment identifier (named anchor) to append to the URL. Do not include the leading '#' character.
  • 'absolute': Defaults to FALSE. Whether to force the output to be an absolute link (beginning with http:). Useful for links that will be displayed outside the site, such as in an RSS feed.
  • 'language': An optional language object used to look up the alias for the URL. If $options['language'] is omitted, it defaults to the current language for the language type LanguageInterface::TYPE_URL.
  • 'https': Whether this URL should point to a secure location. If not defined, the current scheme is used, so the user stays on HTTP or HTTPS respectively. TRUE enforces HTTPS and FALSE enforces HTTP.
  • 'base_url': Only used internally by a path processor, for example, to modify the base URL when a language dependent URL requires so.
  • 'prefix': Only used internally, to modify the path when a language dependent URL requires so.
  • 'route': The route object for the given path. It will be set by \Drupal\Core\Routing\UrlGenerator::generateFromRoute().
Request $request

The HttpRequest object representing the current request.

BubbleableMetadata $bubbleable_metadata

(optional) Object to collect path processors' bubbleable metadata.

Return Value

string

The processed path.

Returns language switch links.

Parameters

Request $request

The current request.

string $type

The language type.

Url $url

The URL the switch links will be relative to.

Return Value

array

An array of link arrays keyed by language code.