class FluentState (View source)

Stores the current fluent state

Traits

A class that can be instantiated or replaced via DI

Properties

protected string $locale

Current locale

protected string|null $domain

Current domain, if set

protected bool $isDomainMode

Whether the website is running in domain segmentation mode

protected bool $isFrontend

Whether the request is for the frontend website

Methods

public static 
create(mixed ...$args)

An implementation of the factory method, allows you to create an instance of a class

public static 
singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

public
string
getLocale()

Get the currently active locale code

public
$this
setLocale(string $locale)

Set the currently active locale code

public
string|null
getDomain()

Get the current domain code

public
$this
setDomain(string|null $domain)

Set the current domain code

public
bool
getIsDomainMode()

Get whether the website is in domain segmentation mode

public
$this
setIsDomainMode(bool $isDomainMode)

Set whether the website is in domain segmentation mode

public
bool
getIsFrontend()

Get whether a request is for the frontend website or not

public
$this
setIsFrontend(bool $isFrontend)

Set whether a request is for the frontend website or not

public
mixed
withState(callable $callback)

Perform the given operation in an isolated state.

Details

static Injectable create(mixed ...$args)

An implementation of the factory method, allows you to create an instance of a class

This method will defer class substitution to the Injector API, which can be customised via the Config API to declare substitution classes.

This can be called in one of two ways - either calling via the class directly, or calling on Object and passing the class name as the first parameter. The following are equivalent: $list = DataList::create(SiteTree::class); $list = SiteTree::get();

Parameters

mixed ...$args

Return Value

Injectable

static Injectable singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

It will always return the same instance for this class, which can be used for performance reasons and as a simple way to access instance methods which don't rely on instance data (e.g. the custom SilverStripe static handling).

Parameters

string $class

Optional classname to create, if the called class should not be used

Return Value

Injectable

The singleton instance

string getLocale()

Get the currently active locale code

Return Value

string

$this setLocale(string $locale)

Set the currently active locale code

Parameters

string $locale

Return Value

$this

string|null getDomain()

Get the current domain code

Return Value

string|null

$this setDomain(string|null $domain)

Set the current domain code

Parameters

string|null $domain

Return Value

$this

bool getIsDomainMode()

Get whether the website is in domain segmentation mode

Return Value

bool

$this setIsDomainMode(bool $isDomainMode)

Set whether the website is in domain segmentation mode

Parameters

bool $isDomainMode

Return Value

$this

bool getIsFrontend()

Get whether a request is for the frontend website or not

Return Value

bool

$this setIsFrontend(bool $isFrontend)

Set whether a request is for the frontend website or not

Parameters

bool $isFrontend

Return Value

$this

mixed withState(callable $callback)

Perform the given operation in an isolated state.

On return, the state will be restored, so any modifications are temporary.

Parameters

callable $callback

Callback to run. Will be passed the nested state as a parameter

Return Value

mixed

Result of callback