rvxlab / laravel-analytics
适用于 Laravel 的简单轻量级分析和标签管理器
Requires
- php: ^8.2
- illuminate/contracts: ^10 || ^11
- illuminate/database: ^10 || ^11
- illuminate/http: ^10||^11
- illuminate/support: ^10 || ^11
Requires (Dev)
- ergebnis/composer-normalize: ^2.43
- larastan/larastan: ^2.7
- laravel/pint: ^1.0
- orchestra/testbench: ^8.16 || ^9.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- pestphp/pest-plugin-watch: ^2.1
- phpstan/extension-installer: ^1.4
README
🚧 此软件包仍在开发中
一个简单、极其轻量级的分析软件包。
需求
- Laravel 10+
安装
使用 Composer 安装
composer require rvxlab/laravel-analytics
发布并运行迁移
php artisan vendor:publish --tag="analytics-migrations"
php artisan migrate
可选:发布配置文件
php artisan vendor:publish --tag="analytics-config"
设置
设置分析的方式有两种
- 全局
- 在路由组中
全局(Laravel 11)
通过在 withMiddleware
调用的 Illuminate\Foundation\Configuration\Middlewares
参数上调用 append
或 appendToGroup
,添加 RVxLab\Analytics\Middleware\RecordPageView
中间件
use Illuminate\Foundation\Application; use Illuminate\Foundation\Configuration\Middleware; use RVxLab\Analytics\Middleware\RecordPageView; return Application::configure(basePath: dirname(__DIR__)) ->withMiddleware(function (Middleware $middleware) { $middleware->append([RecordPageView::class]); // OR $middleware->appendToGroup('<middlewareGroup>', [RecordPageView::class]); })->create();
全局(Laravel 10 和 11 没有使用新精简骨架)
将 RVxLab\Analytics\Middleware\RecordPageView
中间件添加到你的 App\Http\Kernel
中的 middleware
数组的末尾或相关的 middlewareGroups
数组中的末尾
namespace App\Http; use RVxLab\Analytics\Middleware\RecordPageView; class Kernel { protected $middleware = [ // --snip-- RecordPageView::class, ]; protected $middlewareGroups = [ 'web' => [ // --snip-- RecordPageView::class, ], ]; }
按路由
您可以将 RVxLab\Analytics\Middleware\RecordPageView
中间件添加到单个路由或一组路由中
use App\Http\Controllers\HomeController; use RVxLab\Analytics\Middleware\RecordPageView; Route::get('/', HomeController::class)->middleware([RecordPageView::class]); // OR Route::middleware([RecordPageView::class])->group(function () { Route::get('/', HomeController::class); });
处理代理
如果你的应用程序位于代理后面,请确保该代理已在受信任的代理中定义。
如果不这样做,分析中的地址将始终为 127.0.0.1
。
例如,如果你通过 Laravel Forge 部署了一个简单的网站,你将想要将 '127.0.0.1'
添加到你的受信任代理中。如果你通过 AWS 或 CloudFlare 背后的负载均衡器,你可能不知道请求将来自哪个 IP。在这种情况下,只需将 '*'
添加到你的受信任代理中。
有关更多信息,请参阅 Laravel 受信任代理文档。
使用单独的数据库
如果你希望为分析使用单独的数据库,请添加一个名为 ANALYTICS_DB_CONNECTION
的环境变量,并将其设置为你要使用的连接。确保它在你的 config/database.php
文件中存在。
更新日志
请参阅 更新日志 了解最近发生了什么变化。
许可证
MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。