miniframe / statistics
Miniframe PHP 框架的网站统计插件。
Requires
- php: >=7.3
- ext-curl: *
- ext-sqlite3: *
- miniframe/core: ^1.0
Requires (Dev)
- geoip2/geoip2: ^2.13
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^9.4
- squizlabs/php_codesniffer: ^3.5
Suggests
- geoip2/geoip2: For converting IP to country codes
This package is auto-updated.
Last update: 2024-09-25 06:19:08 UTC
README
此包为 Miniframe PHP 框架 添加网站统计功能。
如何使用
- 在现有项目中,输入:
composer require miniframe/statistics
- 将以下指令添加到您的 config.ini 文件中
- 运行任务
php public/index.php _STATISTICS update
以更新 geoip 和 browscap 数据库 - 访问
yourwebsite/_STATISTICS
查看输出
示例 config.ini 指令
[framework]
middleware[] = Miniframe\Statistics\Middleware\Statistics
[statistics]
browscap_database_path = cache/browscap
storage_path = cache/
建议定期运行更新任务。
如何启用 GeoIP(国家查找)
对于 GeoIP,我使用本地数据库,因此 IP 地址不会与任何第三方共享。要获取此数据库,需要几个步骤;
- 在您的配置文件中添加以下内容
[statistics] geoip_database_path = cache/geoip
- 输入
composer require geoip2/geoip2:~2.0
- 在 https://dev.maxmind.com/geoip/geolite2-free-geolocation-data 创建账户
- 拥有账户后,在 https://www.maxmind.com/en/accounts/613599/license-key 创建新的许可证密钥,并选择“否”更新工具。
- 复制
许可证密钥
并将其放入secrets.ini
文件中[statistics] geoip_licensekey = ****************
建议将
secrets.ini
文件放入您的.gitignore
文件中,以免其出现在 git 仓库中。 - 运行任务
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.bat、bin\phpcs.bat、bin\phpunit.bat、bin\phpstan.bat 和 bin\security-checker.bat 作为 Composer、CodeSniffer、PHPUnit、PHPStan 和安全检查器的快捷方式,而无需在您的机器上安装 PHP 和其他依赖项。
相同的 Docker 容器和工具在 Bitbucket Pipelines 中使用,以自动测试此项目。