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 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($class, $extensionClass, $args = null)

Called when this extension is added to a particular class

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

Set the owner of this extension.

clearOwner()

No description

Object
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 52
static add_to_class($class, $extensionClass, $args = null)

Called when this extension is added to a particular class

Parameters

$class
$extensionClass
$args

at line 64
setOwner(Object $owner, string $ownerBaseClass = null)

Set the owner of this extension.

Parameters

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 72
clearOwner()

at line 83
Object getOwner()

Returns the owner of this extension.

Return Value

Object

at line 95
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"