DetectLocaleMiddleware
class DetectLocaleMiddleware implements HTTPMiddleware (View source)
DetectLocaleMiddleware will detect if a locale has been requested (or is default) and is not the current locale, and will redirect the user to that locale if needed.
Will cascade through different checks in order, see "configuration" docs for details. Additionally, detected locales will be set in session and cookies.
Traits
Provides extensions to this object to integrate it with standard config API methods.
Config options
persist_ids | string[] | IDs to persist the locale in cookies / session in the front end, CMS, etc |
|
persist_cookie | bool | Use cookies for locale persistence. |
|
persist_cookie_expiry | int | The expiry time in days for a locale persistence cookie |
|
persist_cookie_path | string | Use this path when setting the locale cookie |
|
persist_cookie_domain | string | Use this domain when setting the locale cookie |
|
persist_cookie_http_only | bool | Use http-only cookies. Set to false if you need js access. |
Properties
protected | bool | $cookiesPersisted | Whether cookies have already been set during setPersistLocale() |
Methods
Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).
Gets the uninherited value for the given config option
Sets the current locale to the FluentState, provided no previous middleware has set it first
Get the current locale from routing parameters, persistence, browser locale, etc
Gets the locale currently set within either the session or cookie.
Specify the locale to persist between sessions, or to use for the locale outside of locale-routed pages (such as in unit tests, custom controllers, etc).
Get the Fluent locale persistence key. See the "persist_ids" config static.
Get locale from the domain, if the current domain has exactly one locale
Check if the current user is allowed to access the curernt locale
Details
static Config_ForClass
config()
Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).
mixed
uninherited(string $name)
Gets the uninherited value for the given config option
HTTPResponse
process(HTTPRequest $request, callable $delegate)
Sets the current locale to the FluentState, provided no previous middleware has set it first
{@inheritDoc}
protected string
getLocale(HTTPRequest $request)
Get the current locale from routing parameters, persistence, browser locale, etc
protected null|string
getPersistLocale(HTTPRequest $request)
Gets the locale currently set within either the session or cookie.
protected $this
setPersistLocale(HTTPRequest $request, string $locale)
Specify the locale to persist between sessions, or to use for the locale outside of locale-routed pages (such as in unit tests, custom controllers, etc).
Not to be confused with the temporary locale assigned with withLocale(). @param HTTPRequest $request
protected string
getPersistKey()
Get the Fluent locale persistence key. See the "persist_ids" config static.
protected mixed
getParamLocale(HTTPRequest $request)
Get locale from the query_param
protected string
getDomainLocale()
Get locale from the domain, if the current domain has exactly one locale
protected string
getDetectedLocale(HTTPRequest $request)
Use the configured LocaleDetector to guess the locale
protected string
getDefaultLocale()
Get default locale
protected
validateAllowedLocale(FluentState $state)
Check if the current user is allowed to access the curernt locale