CMSPlugin

实现 DispatcherAwareInterfacePluginInterfaceLanguageAwareInterface

插件类

抽象
自版本

1.5

Joomla CMS

方法

__construct

构造函数

__construct(\Joomla\Event\DispatcherInterface dispatcher, mixed||string|int config = []) : 
自版本

1.5

参数

dispatcher

DispatcherInterface事件调度器

config

array<string|int, mixed>一个可选的关联数组,包含配置设置。已识别的键值包括 'name'、'group'、'params'、'language'(此列表并非详尽无遗)。

返回值

混合类型

getApplication

返回内部应用程序,或在未设置时返回 null。

getApplication() : \Joomla\CMS\Application\CMSApplicationInterface|null
自版本

4.2.0

返回值

CMSApplicationInterface|null

getLanguage

获取语言。

getLanguage() : \Joomla\CMS\Language\Language
继承
自版本

4.4.0

抛出

UnexpectedValueException如果未设置语言,则可能会抛出此异常。

返回值

语言

loadLanguage

加载插件语言文件

loadLanguage( extension = '',  basePath = JPATH_ADMINISTRATOR) : 
自版本

1.5

参数

extension

string要加载语言文件的扩展名

basePath

string要使用的基路径

返回值

bool如果文件已成功加载,则为 True。

parameterImplementsEventInterface

检查参数是否使用 \Joomla\Event\EventInterface 进行类型提示。

parameterImplementsEventInterface(\ReflectionParameter parameter) : 
自版本

4.0.0

参数

parameter

ReflectionParameter

返回值

bool

registerLegacyListener

注册一个旧版事件侦听器,即一个方法,其参数接受单独的参数,而不是 AbstractEvent。这为 Joomla! 3.x 样式的插件提供了向后兼容性。

registerLegacyListener( methodName) : 
最终

此方法将注册 lambda 函数(闭包),这些函数尝试将已分派事件的参数解包到旧样式方法参数中,并使用它们调用您的 on<Something> 方法。结果将作为名为 'result' 的数组参数中的元素传递回事件。

自版本

4.0.0

参数

methodName

string要注册的方法名称

返回值

void

registerListener

注册一个正确的事件侦听器,即一个方法,其参数接受 AbstractEvent 作为其唯一参数。这是在 Joomla! 4.x 中实现插件的首选方法,并且从 Joomla! 5.x 开始将成为唯一可能的方法。

registerListener( methodName) : 
最终
自版本

4.0.0

参数

methodName

string要注册的方法名称

返回值

void

registerListeners

向调度器注册旧版侦听器,模拟 Joomla! 3.x 及更低版本中插件的工作方式。

registerListeners() : 

默认情况下,此方法将查找所有名称以“on”开头的公共方法。它将注册 lambda 函数(闭包),这些函数尝试将已分派事件的参数解包到方法调用参数中,并调用您的 on<Something> 方法。结果将传递回事件到其 'result' 参数中。

此方法还支持 Joomla\Event\SubscriberInterface,并且实现此接口的插件将作为订阅者注册到调度器。

自版本

4.0.0

返回值

void

setApplication

设置要使用的应用程序。

setApplication(\Joomla\CMS\Application\CMSApplicationInterface application) : 
自版本

4.2.0

参数

application

CMSApplicationInterface应用程序

返回值

void

setLanguage

设置要使用的语言。

setLanguage(\Joomla\CMS\Language\Language language) : 
继承
自版本

4.4.0

参数

language

Language要使用的语言

返回值

void

属性

language

语言

继承
自版本

4.4.0

类型

语言

params

保存插件参数的注册表对象

自版本

1.5

类型

Registry

_name

插件的名称

自版本

1.5

类型

string

_type

插件类型

自版本

1.5

类型

string

autoloadLanguage

影响构造函数行为。如果为 true,则会自动加载语言文件。

自版本

3.1

类型

bool

allowLegacyListeners

我是否应该尝试检测和注册旧版事件侦听器,即接受解包参数的方法?虽然这在很大程度上保持了与 Joomla! 3.x 样式插件的向后兼容性,但速度要慢得多。建议您使用正确的侦听器实现插件,即方法接受 AbstractEvent 作为其唯一参数,以获得最佳性能。还要记住,Joomla! 5.x 及更高版本将只允许使用正确的侦听器,从而删除对旧版侦听器的支持。

已弃用
自版本

4.0.0

已弃用

4.3 将在 6.0 中删除 实现接受 AbstractEvent 对象的插件方法 示例:onEventTriggerName(AbstractEvent $event) { $context = $event->getArgument(...); }

类型

bool

application

应用程序对象

自版本

4.2.0

类型

CMSApplicationInterface