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 |
---|---|
抛出 |
|
参数
- 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>