AbstractEvent

扩展 Event

此类实现系统范围使用的基本 Event 对象,以提供正交性。模型、控制器等核心对象会在运行时创建此类事件,并通过应用程序的调度器(俗称“Joomla! 插件系统”)进行分派。这样,一个合适的插件(通常是一个“系统”插件)就可以修改任何内部类的行为,提供系统范围的服务,例如标签、内容版本控制、评论,甚至低级服务,例如创建/修改/锁定行为的实现、记录点击次数等。

抽象

您可以使用以下代码创建新的 Event:

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

您可以使用 $event['subject'] 从 Event 监听器中访问主题对象。由监听器决定是否应该针对主题应用其功能。

此 AbstractEvent 类实现了一个可变事件,允许它在运行时更改其参数。这通常不可取。最好使用 AbstractImmutableEvent 并将所有交互限制在主题类中。

4.0.0

Joomla CMS

方法

__construct

构造函数。覆盖以通过参数设置器。

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

4.0.0

参数

name

string事件名称。

arguments

array<string|int, mixed>事件参数。

响应

mixed

create

为给定事件名称和主题创建一个新的 CMS 事件对象。必须提供以下参数:主题对象 事件的主题。这是您要操作的核心对象。

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

eventClass string 事件类名称。如果您不提供它,将使用 Joomla\CMS\Events<eventNameWithoutOnPrefix>。

4.0.0

抛出

BadMethodCallException如果您没有提供主题参数

参数

eventName

string事件名称,例如 onTableBeforeLoad

arguments

array<string|int, mixed>传递给事件的附加参数

响应

静态

getArgument

获取事件参数值。

getArgument( name,  default = null) : 

如果存在,它将使用预处理方法。该方法具有以下签名

onGet<ArgumentName>($value): mixed

其中

$value 是当前存储在事件的 $arguments 数组中的值 它返回要返回给调用者的值。

4.0.0

参数

name

string参数名称。

default

mixed如果未找到,则为默认值。

响应

mixed参数值或默认值。

getEventClassByEventName

获取给定事件名称的具体事件类名称。

getEventClassByEventName( eventName) : 
继承 静态

如果此特征不认识事件名称,则此方法将回退到通用 Joomla\Event\Event 类。

4.2.0

参数

eventName

string事件名称

响应

string事件类名称

setArgument

将参数添加到事件中。

setArgument( name,  value) : 

如果存在,它将使用预处理方法。该方法具有以下签名

onSet<ArgumentName>($value): mixed

其中

$value 是用户设置的值 它返回要返回到事件的 $arguments 数组中设置的值。

4.0.0

参数

name

string参数名称。

value

mixed值。

响应

$this

属性

eventNameToConcreteClass

将事件名称映射到具体 Event 类。

继承 静态

这仅适用于具有不变名称的事件。具有可变名称的事件由 getEventClassByEventName 类中的 PHP 逻辑处理。

4.2.0

类型

array<string|int, mixed>