从Matomo 3迁移插件。X到Matomo 4

本迁移指南解释了如何进行一些迁移,使插件与Matomo 4兼容。在Matomo 4中所有更改的列表可以在更新日志

创建一个新分支

我们建议你为你的插件创建一个支持Matomo 4的新分支。例如5. x-dev。这样你就可以对Matomo 3和Matomo 4的插件进行修改,并为它们各自发布独立的版本。一旦你发布了支持Matomo 4版本的更新,你仍然可以发布支持Matomo 3的插件更新。

调整所需的Matomo版本

为了让你的插件在Matomo 4中执行,你首先需要在你的插件中显示它与Matomo 4兼容plugin.json文件:

  • 指定你的插件需要Matomo 4 (Matomo(以前的Piwik) 3的要求曾经是eg:“piwik > = 3.0.0-b1 < 4.0.0-b1”).
  • 我们也建议增加插件的主版本号,例如from3.2.34.0.0

plugin.json看起来是这样的:

“版本”:“4.0.0”,“要求”:{“matomo”:“> = 4.0.0-b1 < 5.0.0-b1 "},

我们不再支持支持Matomo 3和Matomo 4等多个主要Matomo版本的插件::“matomo > = 3.0.0-b1 < 5.0.0-b1”。在这种情况下,您将收到一封错误电子邮件,并且该版本将不会发布。

所需PHP版本

我们现在需要PHP 7.2.5而不是PHP 5.5。这意味着你可以使用更多的PHP语言特性:

浏览器支持

我们不再支持Matomo用户界面中的ie10。

事件

如果你的插件正在监听事件,你必须重命名方法getListHooksRegisteredregisterEvents

还有各种其他事件的变化,请参阅更新日志

树枝模板

我们从小枝1更新到小枝3,这需要一些变化,你应该使用小枝模板。

你可以在这个弃用列表中找到细节。

树枝2的变化|树枝3的变化

我们必须在core中应用这些列表的更改:

  • 在Twig 2.10中已弃用在for标记上添加if条件。使用一个过滤器或“for”语句体中的“if”条件(如果你的条件依赖于循环中更新的变量)。

如。

{% for id,name in list if id > 17 %}

就变成了

{% for id,name in list|filter(id=> id > 17) %}
  • 无空格标记在Twig 2.7中已弃用。使用无空格过滤器代替或{% apply spaceless %} (Twig\Node\SpacelessNode和Twig\TokenParser\SpacelessTokenParser类也已弃用)。

如。{%无空格%}就变成了{%应用无空格%}

  • 不建议使用sameas和divisibleby测试,而是分别使用sameas和divisibleby测试。

如。divisibleby (2)就变成了(2)整除

正在对特拉维斯进行测试

如果你是在Travis上测试你的插件您应该重新生成.travis.yml在你的Matomo目录下执行以下命令:

$ ./console generate:travis-yml——plugin=MyPlugin——php-versions="7.2,7.4"——distribution="bionic"——sudo-false——verbose

您可能需要更新“排除”矩阵,因为如果您不想运行某些作业,这不会自动完成。否则,它将只排除对不再运行的PHP版本的运行。

市场分布

更新过去使用GitHub服务从GitHub存储库发布到Matomo市场。GitHub在一段时间前已经弃用了这个功能。要向市场发送更新,你需要确保你有一个Matomo Webhook在存储库中配置。否则市场不会注意到你的插件有更新。

总结

在本指南中,我们已经了解了迁移您的Matomo插件以与我们最新的Matomo 4兼容的步骤。如果您需要将插件转换为Matomo 3的进一步帮助,请前往Matomo开发者社区论坛

一旦你调整了你的插件,不要忘记发布一个新版本。

Baidu