miniframe/statistics

Miniframe PHP 框架的网站统计插件。

v1.x-dev 2024-09-25 06:18 UTC

This package is auto-updated.

Last update: 2024-09-25 06:19:08 UTC


README

此包为 Miniframe PHP 框架 添加网站统计功能。

build code coverage

如何使用

  1. 在现有项目中,输入: composer require miniframe/statistics
  2. 将以下指令添加到您的 config.ini 文件中
  3. 运行任务 php public/index.php _STATISTICS update 以更新 geoip 和 browscap 数据库
  4. 访问 yourwebsite/_STATISTICS 查看输出

示例 config.ini 指令

[framework]
middleware[] = Miniframe\Statistics\Middleware\Statistics

[statistics]
browscap_database_path = cache/browscap
storage_path = cache/

建议定期运行更新任务。

如何启用 GeoIP(国家查找)

对于 GeoIP,我使用本地数据库,因此 IP 地址不会与任何第三方共享。要获取此数据库,需要几个步骤;

  1. 在您的配置文件中添加以下内容
    [statistics]
    geoip_database_path = cache/geoip
    
  2. 输入 composer require geoip2/geoip2:~2.0
  3. https://dev.maxmind.com/geoip/geolite2-free-geolocation-data 创建账户
  4. 拥有账户后,在 https://www.maxmind.com/en/accounts/613599/license-key 创建新的许可证密钥,并选择“否”更新工具。
  5. 复制 许可证密钥 并将其放入 secrets.ini 文件中
    [statistics]
    geoip_licensekey = ****************
    

    建议将 secrets.ini 文件放入您的 .gitignore 文件中,以免其出现在 git 仓库中。

  6. 运行任务 php public/index.php _STATISTICS update 以更新 geoip 数据库。

您还可以安装一个工具来自动下载数据库。

如何为统计信息设置密码保护

对于密码保护,您可以使用 Basic HTTP Authentication 中间件。有关更多信息,请参阅中间件的 文档

如何更改统计信息的 URL

您可以通过更改 slug 来修改统计页面 URL

[statistics]
slug = stats

GDPR 兼容性

首先,让我声明这不受律师的覆盖,这里没有保证。
我编写了这个库,试图完全遵守 GDPR。就我所知,没有存储任何个人数据。

我只存储一些全局数据,如国家代码、操作系统和浏览器版本,并且没有在这些数据集之间建立链接,因为没有实际需要。

实际使用的数据可以在 src/Model/PageHit.php 中查看

针对 Windows 开发者

bin 文件夹中存在一些批处理文件,以便于开发。

如果您安装了 Docker Desktop for Windows,则可以使用 bin\composer.batbin\phpcs.batbin\phpunit.batbin\phpstan.batbin\security-checker.bat 作为 Composer、CodeSniffer、PHPUnit、PHPStan 和安全检查器的快捷方式,而无需在您的机器上安装 PHP 和其他依赖项。

相同的 Docker 容器和工具在 Bitbucket Pipelines 中使用,以自动测试此项目。