class FluentIsolatedExtension extends Extension (View source)

Represents an object that can only exist in a single locale

Note: You cannot use this extension on any object with the other fluent extensions

Properties

protected T $owner

The object this extension is applied to.

from  Extension
int $LocaleID

Methods

public
__construct()

No description

public static 
add_to_class(string $class, string $extensionClass, mixed $args = null)

Called when this extension is added to a particular class

public
setOwner(object $owner)

Set the owner of this extension.

public
mixed
withOwner(mixed $owner, callable $callback, array $args = [])

Temporarily modify the owner. The original owner is ensured to be restored

public
clearOwner()

Clear the current owner, and restore extension to the state prior to the last setOwner()

public
T
getOwner()

Returns the owner of this extension.

public static 
string
get_classname_without_arguments(string $extensionStr)

Helper method to strip eval'ed arguments from a string that's passed to DataObject::$extensions or Object::add_extension().

public
mixed
invokeExtension(object $owner, string $method, array ...$arguments)

Invoke extension point. This will prefer explicit extend prefixed methods.

protected
onBeforeWrite()

No description

protected
augmentDataQueryCreation(SQLSelect $query, DataQuery $dataQuery)

Amend freshly created DataQuery objects with the current locale and frontend status

protected
augmentDatabase()

Safety checks for config are done on dev/build

protected
onRequireDefaultRecords()

No description

protected
augmentSQL(SQLSelect $query, DataQuery|null $dataQuery = null)

No description

protected
Locale|null
getDataQueryLocale(DataQuery|null $dataQuery = null)

Get current locale from given dataquery

protected
void
migrateFromFilteredExtension()

Soft-migration for records that used to be FluentFilteredExtension Set the locale for records with missing LocaleID to the first locale they had selected

protected
bool
getIsIDFiltered(SQLSelect $query)

Determine if this record is being filtered by ID

Locale()

No description

Details

__construct()

No description

static add_to_class(string $class, string $extensionClass, mixed $args = null)

Called when this extension is added to a particular class

Parameters

string $class
string $extensionClass
mixed $args

setOwner(object $owner)

Set the owner of this extension.

Parameters

object $owner

The owner object

mixed withOwner(mixed $owner, callable $callback, array $args = [])

Temporarily modify the owner. The original owner is ensured to be restored

Parameters

mixed $owner

Owner to set

callable $callback

Callback to invoke

array $args

Args to pass to callback

Return Value

mixed

clearOwner()

Clear the current owner, and restore extension to the state prior to the last setOwner()

T getOwner()

Returns the owner of this extension.

Return Value

T

static string get_classname_without_arguments(string $extensionStr)

Helper method to strip eval'ed arguments from a string that's passed to DataObject::$extensions or Object::add_extension().

Parameters

string $extensionStr

E.g. "Versioned('Stage','Live')"

Return Value

string

Extension classname, e.g. "Versioned"

mixed invokeExtension(object $owner, string $method, array ...$arguments)

Invoke extension point. This will prefer explicit extend prefixed methods.

Parameters

object $owner
string $method
array ...$arguments

Return Value

mixed

protected onBeforeWrite()

No description

protected augmentDataQueryCreation(SQLSelect $query, DataQuery $dataQuery)

Amend freshly created DataQuery objects with the current locale and frontend status

Parameters

SQLSelect $query
DataQuery $dataQuery

protected augmentDatabase()

Safety checks for config are done on dev/build

Exceptions

LogicException

protected onRequireDefaultRecords()

No description

protected augmentSQL(SQLSelect $query, DataQuery|null $dataQuery = null)

No description

Parameters

SQLSelect $query
DataQuery|null $dataQuery

protected Locale|null getDataQueryLocale(DataQuery|null $dataQuery = null)

Get current locale from given dataquery

Parameters

DataQuery|null $dataQuery

Return Value

Locale|null

protected void migrateFromFilteredExtension()

Soft-migration for records that used to be FluentFilteredExtension Set the locale for records with missing LocaleID to the first locale they had selected

Return Value

void

protected bool getIsIDFiltered(SQLSelect $query)

Determine if this record is being filtered by ID

Parameters

SQLSelect $query

Return Value

bool

Locale Locale()

No description

Return Value

Locale