Piwik \
所有插件描述符类的基类。
任何想要将事件观察者添加到Matomo(以前是Piwik)的一个插件钩子,或有特殊的安装/卸载逻辑必须实现这个类。插件,可以指定他们需要的一切plugin.json文件,比如主题,不需要实现这个类。
类实现应该以它们所在的插件命名(例如,类UserCountry扩展插件
).
除了为插件提供安装/卸载自己和添加事件观察者的地方之外,这个类还负责加载插件中的元数据。json文件。
插件。Json文件必须存在于插件的根目录中。它可以包含以下信息:
真正的
或假
.如果真正的
,插件将被视为一个主题。如何扩展
使用Piwik \常见;使用Piwik \插件;使用Piwik \分贝;MyPlugin类扩展了Plugin{公共函数registerEvents(){返回数组('API. js ')getReportMetadata' => 'getReportMetadata', '另一个。event' => array('function' => 'myOtherPluginFunction', 'after' => true //在其他人之后执行这个回调));}公共函数install() {Db::exec("CREATE TABLE " . exe)常见的::prefixTable(“mytable”)。“…”);}公共函数卸载(){Db::exec("DROP TABLE IF EXISTS " .}常见的::prefixTable (' mytable ')); } public function getReportMetadata(&$metadata) { // ... } public function myOtherPluginFunction() { // ... } }
该类定义了以下方法:
__construct ()
——构造函数。reloadPluginInformation ()
getInformation ()
-返回插件信息,包括:isPremiumFeature ()
shouldLoadUmdOnDemand ()
-如果你想要插件的Vue模块按需加载,当它第一次被引用时,而不是在页面加载时,这里返回true。registerEvents ()
-返回带有关联事件观察器的事件列表。postLoad ()
-此方法在加载插件并注册翻译后执行。requiresInternetConnection ()
-定义整个插件是否需要一个工作的互联网连接如果设置为true,插件将自动卸载如果enable_internet_features
是0,即使插件被激活安装()
—安装插件。卸载()
—卸载插件。激活()
—每次启用插件时执行。关闭()
—每次禁用插件时执行。getVersion ()
-返回插件版本号。isTheme ()
——返回真正的
如果这个插件是一个主题,假
否则如果。getPluginName ()
灰;返回插件的基类名称,但不包含命名空间,例如:“UserCountry”
当插件类为“Piwik \ Plugins \ UserCountry \ UserCountry”
.findComponent ()
-尝试在这个插件中找到一个组件,如菜单或任务。findMultipleComponents ()
hasMissingDependencies ()
-检测是否有任何缺失的依赖项。getMissingDependencies ()
getMissingDependenciesAsString ()
-返回一个字符串(翻译后),描述这个插件和给定的Matomo版本缺少的需求schedulePluginReArchiving ()
-计划重新归档这个插件的报告,从这个插件最后一次停用到现在。getPluginNameFromBacktrace ()
-从反向跟踪数组中提取插件名称。getPluginNameFromNamespace ()
-从命名空间名或完全限定类名中提取插件名。getPluginLastActivationTime ()
getPluginLastDeactivationTime ()
getChanges ()
-获取该插件的所有更改__construct ()
构造函数。
pluginName美元
(字符串
|保龄球
-一个要强制的插件名。如果未提供,则将其设置为类名的最后一部分。异常
-如果插件元数据在getInformation()方法和plugin.json文件。reloadPluginInformation ()
getInformation ()
返回插件信息,包括:
数组
价值。isPremiumFeature ()
shouldLoadUmdOnDemand ()
如果您希望插件的Vue模块在第一次引用时按需加载,而不是在页面加载时,则在此返回true。这可以用来改善初始页面加载时间,特别是当你的插件包含大量Vue代码时。
注意:这样做意味着任何其他依赖于你的插件将不再能够正常运行进口…从“并且”;
,他们将不得不使用importPluginUmd ()
函数CoreHome
返回一个Promise。
布尔
价值。registerEvents ()
从Matomo 2.15.0开始
返回带有关联事件观察器的事件列表。
派生类应该使用此方法将回调与事件关联起来。
返回:数组
,例如,
数组(“API。getReportMetadata' => 'myPluginFunction', '另一个。event' => array('function' => 'myOtherPluginFunction', 'after' => true //回调后执行w/o排序)“Yet.Another。event' => array('function' => 'myOtherPluginFunction', 'before' => true //在回调前执行w/o排序))
postLoad ()
此方法在加载插件并注册翻译后执行。
对于使用转换字符串的初始化代码非常有用。
requiresInternetConnection ()
定义整个插件是否需要一个工作的互联网连接如果设置为true,插件将自动卸载如果enable_internet_features
是0,即使插件被激活
保龄球
价值。安装()
安装插件。派生类应该实现这个类,如果插件需要:
异常
-如果由于某些原因安装失败。卸载()
卸载插件。中所做的更改,派生类应实现此方法安装()需要在卸载过程中撤消。
在大多数情况下,如果你有安装()方法时,应提供卸载()方法。
异常
-如果卸载失败,由于某种原因。激活()
每次启用插件时执行。
关闭()
每次插件被禁用时执行。
getVersion ()
返回插件版本号。
字符串
价值。isTheme ()
返回真正的
如果这个插件是一个主题,假
否则如果。
保龄球
价值。getPluginName ()
返回插件的基类名称,但不包含命名空间,例如:“UserCountry”
当插件类为“Piwik \ Plugins \ UserCountry \ UserCountry”
.
字符串
价值。findComponent ()
试图在这个插件中找到一个组件,如菜单或任务。
它接受以下参数:
componentName美元
(字符串
) -要查找的组件的名称。如果你请求一个名为“Menu”的组件,它会在插件文件夹的根目录中查找一个名为“Menu.php”的文件,该文件实现了一个名为Piwik\ plugin \$PluginName\Menu的类。如果这样的文件存在,但没有实现这个类,它将被默默地忽略。expectedSubclass美元
(字符串
-如果不为空,将检查找到的文件是否扩展了给定的子类。如果请求的文件存在,但没有扩展该类,则会显示警告,建议开发人员扩展该类。返回:字符串
|零
—如果请求的组件不存在,或者是找到的组件的实例,则为空。
findMultipleComponents ()
它接受以下参数:
directoryWithinPlugin美元
expectedSubclass美元
它不返回任何东西,也不返回混合结果。
hasMissingDependencies ()
检测是否有任何缺失的依赖项。
piwikVersion美元
(零
) -默认为当前Matomo版本保龄球
价值。getMissingDependencies ()
它接受以下参数:
piwikVersion美元
它不返回任何东西,也不返回混合结果。
getMissingDependenciesAsString ()
返回一个字符串(翻译后),描述这个插件和给定的Matomo版本缺少的需求
它接受以下参数:
piwikVersion美元
(字符串
) - - -返回:字符串
- " anonymouspiwikusagmeasurement要求PIWIK >=3.0.0"
schedulePluginReArchiving ()
计划重新归档该插件的报告,从该插件最后一次停用到现在。如果core:archive的最后一次运行时间早于插件的最后一次去激活时间,那么我们就用这个时间来代替。
注意:这只适用于CLI归档设置。
注:时间范围受限于(一般)rearchive_reports_in_past_last_n_months
INI配置值。
DI \ DependencyException
DI \ NotFoundException
getPluginNameFromBacktrace ()
从反向跟踪数组中提取插件名称。返回假
如果我们找不到的话。
它接受以下参数:
美元的回溯
(数组
的结果debug_backtrace ()或例外::getTrace ().返回:字符串
|假
- - - - - -
getPluginNameFromNamespace ()
从名称空间名称或完全限定类名称中提取插件名称。返回假
如果我们找不到的话。
它接受以下参数:
namespaceOrClassName美元
(字符串
) -命名空间或类字符串。返回:字符串
|假
- - - - - -
getPluginLastActivationTime ()
getPluginLastDeactivationTime ()
getChanges ()
获取该插件的所有更改
数组
——一系列变化[{“标题”:“abc”、“描述”:“xyz”,“链接名”:“def”,“链接”:“https://link”、“版本”:“1.2.3”}]