Extension
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.
Methods
No description
Called when this extension is added to a particular class
Set the owner of this extension.
Temporarily modify the owner. The original owner is ensured to be restored
Clear the current owner, and restore extension to the state prior to the last setOwner()
Returns the owner of this extension.
Helper method to strip eval'ed arguments from a string that's passed to {@link DataObject::$extensions} or {@link Object::add_extension()}.
Invoke extension point. This will prefer explicit extend
prefixed
methods.
Details
at line 39
__construct()
at line 50
static
add_to_class(string $class, string $extensionClass, mixed $args = null)
Called when this extension is added to a particular class
at line 60
setOwner(object $owner)
Set the owner of this extension.
at line 74
mixed
withOwner(mixed $owner, callable $callback, array $args = [])
Temporarily modify the owner. The original owner is ensured to be restored
at line 87
clearOwner()
Clear the current owner, and restore extension to the state prior to the last setOwner()
at line 100
Object
getOwner()
Returns the owner of this extension.
at line 113
static string
get_classname_without_arguments(string $extensionStr)
Helper method to strip eval'ed arguments from a string that's passed to {@link DataObject::$extensions} or {@link Object::add_extension()}.
at line 128
mixed
invokeExtension(object $owner, string $method, array $arguments)
Invoke extension point. This will prefer explicit extend
prefixed
methods.