gigerit / laravel-model-stats
Laravel应用程序的模型统计仪表板
Requires
- php: ^8.0
- illuminate/contracts: ^8.37
- illuminate/support: ^5.8|^6.0|^7.0|^8.0
- laravel/tinker: ^1.0|^2.0
- spatie/laravel-package-tools: ^1.4.3
Requires (Dev)
- brianium/paratest: ^6.2
- nunomaduro/collision: ^5.3
- orchestra/testbench: ^6.15
- phpunit/phpunit: ^9.3
- spatie/laravel-ray: ^1.20
- vimeo/psalm: ^4.4
README
Laravel应用程序的模型统计仪表板
此Laravel包为您提供了Laravel应用程序的统计仪表板。将其视为Grafana的轻量版,但集成在您的Laravel应用程序中,并且更容易上手。使用Laravel模型统计无需代码知识,用户可以从Web界面完成所有操作。它还可选地支持自定义代码小部件,允许您使用代码定义小部件数据,就像使用tinker一样。
安装
您可以通过Composer安装此包
composer require jhumanj/laravel-model-stats
您可以使用以下命令安装包并运行迁移
php artisan model-stats:install php artisan migrate
可用的无代码小部件
不同类型的小部件(每日计数、每日平均值等)可供使用。在创建小部件时,您可以选择模型、聚合类型和图表的列。然后,您可以在仪表板上调整大小和移动小部件。
当前可用的聚合类型
- 每日计数(在选定时间段内每天记录数)。
- 累积每日计数(在选定时间段内累积总记录数)。
- 时间段总计(在选定时间段内的新记录数)。
- 按组计数(在选定时间段内给定列的组计数)。
- ...(更多即将推出)
对于每种小部件类型,日期可以是任何列:created_at
、updated_at
、custom_date
。
自定义代码小部件
您还可以使用自定义代码小部件,允许您使用代码定义小部件数据,就像使用tinker一样。
您的代码必须定义一个包含要返回给所选图表的数据的$result
变量。您可以使用$dateFrom
和$dateTo
变量。
柱状图的示例自定义代码
$result = [ 'a' => 10, 'b' => 20 ];
请注意,出于安全原因,您的代码不允许对数据库执行任何写操作。您只能使用代码查询数据并在内存中转换它。即使禁用写操作可以使事情更安全,远程代码执行始终是一项非常危险的操作。请确保您的仪表板授权配置正确。您可能希望通过将MODEL_STATS_CUSTOM_CODE
环境变量设置为false
来禁用自定义代码小部件。
仪表板授权
ModelStats仪表板可通过/stats
路由访问。默认情况下,您只能在本地环境中访问此仪表板。在您的app/Providers/ModelStatsServiceProvider.php
文件中,有一个授权门定义。此授权门控制对非本地环境中ModelStats的访问。您可以根据需要自由修改此门以限制对您的ModelStats安装的访问
/** * Register the ModelStats gate. * * This gate determines who can access ModelStats in non-local environments. * * @return void */ protected function gate() { Gate::define('viewModelStats', function ($user) { return in_array($user->email, [ 'taylor@laravel.com', ]); }); }
升级
请确保在升级ModelStats时重新发布前端资源
php artisan model-stats:publish
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
贡献
有关详细信息,请参阅贡献指南。
安全漏洞
请查阅我们的安全策略以了解如何报告安全漏洞。
鸣谢(贡献者)
灵感
- Grafana:用于仪表板/小部件方面
- Laravel/Telescope:用于包结构中的许多方面(前端、授权...)
- Spatie/Laravel-Web-Tinker:用于他们的Web Tinker实现,该实现用于自定义代码小部件
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。