CMSPlugin
实现 DispatcherAwareInterface,PluginInterface,LanguageAwareInterface插件类
自版本 |
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
getLanguage
获取语言。
getLanguage() : \Joomla\CMS\Language\Language
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) :
setLanguage
设置要使用的语言。
setLanguage(\Joomla\CMS\Language\Language language) :
属性
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