class SubsiteState implements Resettable (View source)

SubsiteState provides static access to the current state for subsite related data during a request

Traits

A class that can be instantiated or replaced via DI

Properties

protected int|null $subsiteId
protected int|null $originalSubsiteId
protected bool $useSessions

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
int|null
getSubsiteId()

Get the current subsite ID

public
$this
setSubsiteId(int $id)

Set the current subsite ID, and track the first subsite ID set as the "original". This is used to check whether the ID has been changed through a request.

public
bool
getUseSessions()

Get whether to use sessions for storing the subsite ID

public
$this
setUseSessions(bool $useSessions)

Set whether to use sessions for storing the subsite ID

public
bool
getSubsiteIdWasChanged()

Get whether the subsite ID has been changed during a request, based on the original and current IDs

public
mixed
withState(callable $callback)

Perform a given action within the context of a new, isolated state. Modifications are temporary and the existing state will be restored afterwards.

public static 
reset()

Reset the local cache of the singleton

public
resetState()

Reset the local cache of this object

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

int|null getSubsiteId()

Get the current subsite ID

Return Value

int|null

$this setSubsiteId(int $id)

Set the current subsite ID, and track the first subsite ID set as the "original". This is used to check whether the ID has been changed through a request.

Parameters

int $id

Return Value

$this

bool getUseSessions()

Get whether to use sessions for storing the subsite ID

Return Value

bool

$this setUseSessions(bool $useSessions)

Set whether to use sessions for storing the subsite ID

Parameters

bool $useSessions

Return Value

$this

bool getSubsiteIdWasChanged()

Get whether the subsite ID has been changed during a request, based on the original and current IDs

Return Value

bool

mixed withState(callable $callback)

Perform a given action within the context of a new, isolated state. Modifications are temporary and the existing state will be restored afterwards.

Parameters

callable $callback

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

Return Value

mixed

Result of callback

static reset()

Reset the local cache of the singleton

resetState()

Reset the local cache of this object