abstract class Extension

Add extension that can be added to an object with {@link Object::add_extension()}.

For {@link DataObject} extensions, use {@link DataExtension}. Each extension instance has an "owner" instance, accessible through {@link getOwner()}. Every object instance gets its own set of extension instances, meaning you can set parameters specific to the "owner instance" in new Extension instances.

Properties

protected SS_Object $owner The object this extension is applied to.
protected DataObject $ownerBaseClass The base class that this extension was applied to; $this->owner must be one of these
$class

Methods

__construct()

No description

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

Called when this extension is added to a particular class

setOwner(SS_Object $owner, string $ownerBaseClass = null)

Set the owner of this extension.

clearOwner()

No description

getOwner()

Returns the owner of this extension.

static string
get_classname_without_arguments(string $extensionStr)

Helper method to strip eval'ed arguments from a string thats passed to {@link DataObject::$extensions} or {@link Object::add_extension()}.

Details

at line 42
__construct()

at line 54
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

at line 66
setOwner(SS_Object $owner, string $ownerBaseClass = null)

Set the owner of this extension.

Parameters

SS_Object $owner The owner object,
string $ownerBaseClass The base class that the extension is applied to; this may be the class of owner, or it may be a parent. For example, if Versioned was applied to SiteTree, and then a Page object was instantiated, $owner would be a Page object, but $ownerBaseClass would be 'SiteTree'.

at line 74
clearOwner()

at line 85
SS_Object getOwner()

Returns the owner of this extension.

Return Value

SS_Object

at line 97
static string get_classname_without_arguments(string $extensionStr)

Helper method to strip eval'ed arguments from a string thats passed to {@link DataObject::$extensions} or {@link Object::add_extension()}.

Parameters

string $extensionStr E.g. "Versioned('Stage','Live')"

Return Value

string Extension classname, e.g. "Versioned"