AbstractEvent

Extends Event

This class implements the base Event object used system-wide to offer orthogonality. Core objects such as Models, Controllers, etc create such events on-the-fly and dispatch them through the application's Dispatcher (colloquially known as the "Joomla! plugin system"). This way a suitable plugin, typically a "system" plugin, can modify the behaviour of any internal class, providing system-wide services such as tags, content versioning, comments or even low-level services such as the implementation of created/modified/locked behaviours, record hit counter etc.

abstract

You can create a new Event with something like this:

$event = AbstractEvent::create('onModelBeforeSomething', $myModel, $arguments);

You can access the subject object from your event Listener using $event['subject']. It is up to your listener to determine whether it should apply its functionality against the subject.

This AbstractEvent class implements a mutable event which is allowed to change its arguments at runtime. This is generally unadvisable. It's best to use AbstractImmutableEvent instead and constrict all your interaction to the subject class.

since

4.0.0

package

Joomla CMS

Methods

__construct

Constructor. Overridden to go through the argument setters.

__construct( name, mixed||string|int arguments = []) : 
since

4.0.0

Arguments

name

stringThe event name.

arguments

array<string|int, mixed>The event arguments.

Response

mixed

create

Creates a new CMS event object for a given event name and subject. The following arguments must be given: subject object The subject of the event. This is the core object you are going to manipulate.

create( eventName, mixed||string|int arguments = []) : 
static

eventClass string The Event class name. If you do not provide it Joomla\CMS\Events<eventNameWithoutOnPrefix> will be used.

since

4.0.0

throws

BadMethodCallExceptionIf you do not provide a subject argument

Arguments

eventName

stringThe name of the event, e.g. onTableBeforeLoad

arguments

array<string|int, mixed>Additional arguments to pass to the event

Response

static

getArgument

Get an event argument value.

getArgument( name,  default = null) : 

It will use a pre-processing method if one exists. The method has the signature:

onGet<ArgumentName>($value): mixed

where:

$value is the value currently stored in the $arguments array of the event It returns the value to return to the caller.

since

4.0.0

Arguments

name

stringThe argument name.

default

mixedThe default value if not found.

Response

mixedThe argument value or the default value.

getEventClassByEventName

Get the concrete event class name for the given event name.

getEventClassByEventName( eventName) : 
inherited static

This method falls back to the generic Joomla\Event\Event class if the event name is unknown to this trait.

since

4.2.0

Arguments

eventName

stringThe event name

Response

stringThe event class name

setArgument

Add argument to event.

setArgument( name,  value) : 

It will use a pre-processing method if one exists. The method has the signature:

onSet<ArgumentName>($value): mixed

where:

$value is the value being set by the user It returns the value to return to set in the $arguments array of the event.

since

4.0.0

Arguments

name

stringArgument name.

value

mixedValue.

Response

$this

Properties

eventNameToConcreteClass

Maps event names to concrete Event classes.

inherited static

This is only for events with invariable names. Events with variable names are handled with PHP logic in the getEventClassByEventName class.

since

4.2.0

Type(s)

array<string|int, mixed>