michaelnabil230 / laravel-analytics
这是我创建的laravel-analytics包
dev-main
2023-07-03 07:55 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^9.0
- matomo/device-detector: ^6.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
This package is auto-updated.
Last update: 2024-09-09 09:03:30 UTC
README
这是我创建的laravel-analytics包
这里应该放置您的描述。限制为一两段话。可以考虑添加一个小的示例。
安装
您可以通过composer安装此包
composer require michaelnabil230/laravel-analytics
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="laravel-analytics-migrations"
php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="laravel-analytics-config"
这是已发布配置文件的内容
return [ 'ip_model' => Ip::class, 'session_visiter_model' => SessionVisiter::class, 'visiter_model' => Visiter::class, /* * Which route paths are not trackable? */ 'ignore_paths' => [ // 'api/*', ], /* * The Do Not Track Ips is used to disable Analytics for some IP addresses: * * '127.0.0.1', '192.168.1.1' * * You can set ranges of IPs * '192.168.0.1-192.168.0.100' * * And use net masks * 127.0.0.0/24 -> range 127.0.0.1 - 127.0.0.255 * '172.17.0.0/255.255.0.0' */ 'do_not_track_ips' => [ '127.0.0.2', ], /* |-------------------------------------------------------------------------- | Drivers GeoIp |-------------------------------------------------------------------------- | | Should the geoip data be collected? | | Set the geoip driver. | | Supported: "free_geo_ip", "ip_stack" */ 'geo_ip' => [ 'enabled' => true, 'default' => 'free_geo_ip', 'drivers' => [ 'ip_stack' => [ 'driver' => MichaelNabil230\LaravelAnalytics\GeoIp\IpStack::class, 'options' => [ 'api_key' => '', 'headers' => [ // 'X-First' => 'foo', ], ], ], 'free_geo_ip' => [ 'driver' => MichaelNabil230\LaravelAnalytics\GeoIp\FreeGeoIp::class, 'options' => [ 'headers' => [ // 'X-First' => 'foo', ], ], ], ], ], /* * All bot if you want defected one. */ 'bot_browsers' => [ 'curl', 'python-requests', 'python-urllib', 'wget', 'unk', 'perl', 'go-http-client', ], /* * Laravel internal variables on user authentication and login. */ 'authentication' => [ 'guards' => [], // defaults to ['web'] ], ];
注册中间件
您可以在app/Http/Kernel.php
文件中注册包的中间件
<?php namespace App\Http; use Illuminate\Foundation\Http\Kernel as HttpKernel; class Kernel extends HttpKernel { /** * The application's route middleware. * * @var array */ protected $routeMiddleware = [ /**** OTHER MIDDLEWARE ****/ 'analytics' => \MichaelNabil230\LaravelAnalytics\Middleware\Analytics::class, ]; }
您可以将页面视图中间件添加到特定的路由组中,例如web.php
,如下所示
Route::middleware('analytics')->group(function () { // ... });
然后您可以在路由中传递typeRequest
,默认使用中间件为web-request
Route::middleware('analytics:api-request')->group(function () { // ... });
用法
use Illuminate\Support\Carbon; use MichaelNabil230\LaravelAnalytics\LaravelAnalyticQueries; $topEvents = LaravelAnalyticQueries::topVisiterEvent() // ->where('event', 'test event') // ->is('bots') // ->is('ajax', false) // ->uniqueSession() // ->uniqueIp() // ->with(['data']) // ->take(10) // ->select('id') // Is very important: Don't use `select` here pass what u need in `topVisiterEvent` // ->addSelect([DB::raw("COUNT(*) as 'count'")]) ->period(Carbon::now(), Carbon::now()->addDays(7)) ->limit(10) ->get();
测试
composer test
支持
变更日志
请参阅变更日志了解最近的变化信息。
贡献
请参阅贡献指南了解详细信息。
安全漏洞
请审查我们的安全策略了解如何报告安全漏洞。
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件了解更多信息。