INI配置

INI文件

INI配置选项存储在配置/ config.ini.php而且配置/ global.ini.php文件。

  • global.ini.php包含默认选项值,是与Matomo(以前是Piwik)的代码一起分发的文件
  • config.ini.php包含了用户配置:它允许用户覆盖默认值。这个文件没有与Matomo的代码一起分发,因为它是由每个用户定制的。

插件和其他代码可以使用Piwik \配置单例。

要了解有关各个配置选项的更多信息,请阅读中的文档global.ini.php

INI文件结构

INI配置选项被分组到不同的部分。INI配置中使用括号声明section,例如:

[MySection] my_config_value = 1

选项可用于通过追加来存储多个项[]并设置它不止一次,例如:

[MySection] myarray[] = 1 myarray[] = 2 myarray[] = 3

读取INI配置

配置单例允许PHP代码访问整个配置部分。类的命名为公共字段的方式访问它们配置单例。

属性中的每个配置选项都将输出(通用)部分:

for (Config::getInstance()->General as $name => $value) {echo "Option $name == "。print_r()美元价值,真正的);}

修改INI配置

配置选项可以在内存中通过配置以相同的方式设置它们:

配置::getInstance()->Development['disable_merged_assets'] = 1;

要持久化这些更改,使它们出现在INI文件中,请调用forceSave ()方法:

配置::getInstance () - > forceSave ();

使用JavaScript访问配置

您可以将新配置添加到配置:getClientSideOptions ()然后,这些配置将使用JavaScript作为piwik.config对象。在公开配置时,您需要仔细检查,以避免公开任何不应该被所有人(公开)看到的配置。任何配置值都将通过HTML对每个人可见,例如在登录屏幕等。另外,根据值的不同,您可能希望为配置强制执行某种类型。例如,如果配置应该是一个整数,那么最好将其转换为整数,以防它是一个字符串等。

添加新的配置选项

插件不能添加新的配置选项。如果您正在创建一个核心贡献,并希望添加一个新的INI选项,您可以简单地将该选项及其默认值添加到global.ini.php

如果你想让你的插件可配置,创建一个插件设置

布尔配置选项

命名

最好的做法是不要以配置名开头disable_而是使用enable_.例如,Disable_processing_unique_visitors_range = 0相比之下,非技术用户略难阅读Enable_processing_unique_visitors_range = 1.请注意,布尔配置并不一定要开始enable_.例如,某些设置可能不使用它Assume_secure_protocol = 0/1Multi_server_environment = 0/1,或Force_ssl = 0/1

例如,Force_ssl = 1配置中的布尔值。按照惯例,我们通过将设置与值进行比较来检查某个特性是否启用1是这样的:

if (\Piwik\Config::getInstance()->General['setting'] == 1) {}

这目前在整个代码库中并不一致,因为有些地方将值作为布尔值进行比较,如下所示(不推荐):

if (\Piwik\Config::getInstance()->General['setting']) {}

有人建议我们今后要改进和澄清这一点.我们不能重构布尔检查来与1进行比较,因为这将是一个破坏性的更改,因为这意味着如果有人配置了例如2,那么它将不再被解释为启用。

当有人配置时请注意设置=开启设置= yes然后它们的值在代码中转换为1也的值而且没有将被转换为0

Baidu