binafy/laravel-user-monitoring

监控您的用户以及应用程序上的所有活动

v1.1.4 2024-09-19 20:11 UTC

README

laravel-user-monitoring-banner

PHP Version Require Latest Stable Version Total Downloads License Passed Tests

介绍

欢迎来到使用突破性的 Laravel User Monitoring 包增强用户监控的世界!由 Binafy 的杰出团队开发,这个创新的开源解决方案旨在为 Laravel 开发者和网站管理员提供用户活动的宝贵见解。

跟踪用户行为和交互变得轻而易举,让您更深入地了解用户的参与度、偏好和痛点。通过与 Laravel 项目的无缝集成,此包开启了一个全新的可能领域,使您能够优化用户体验、检测瓶颈并为平台的成功做出数据驱动的决策。

体验前所未有的实时监控,轻松访问全面的分析并可视化用户交互。请放心,您的用户数据将得到安全处理,尊重隐私,同时为您提供改进应用程序性能和用户满意度的工具。

无论您是在构建新项目还是希望增强现有项目,"Laravel User Monitoring" 都是提升您的 Web 应用程序至新高度的缺失环节。所以,还在等什么?进入智能用户监控的世界,今天见证您基于 Laravel 的应用程序的变革!

安装

您可以使用 Composer 安装此包。

composer require binafy/laravel-user-monitoring

发布

如果您想发布配置文件,可以使用此命令

php artisan vendor:publish --tag="laravel-user-monitoring-config"

如果您想发布迁移,可以使用此命令

php artisan vendor:publish --tag="laravel-user-monitoring-migrations"

如果您想发布视图,可以使用此命令

php artisan vendor:publish --tag="laravel-user-monitoring-views"

如果您想发布中间件,可以使用此命令

php artisan vendor:publish --tag="laravel-user-monitoring-middlewares"

如果您想发布路由,可以使用此命令

php artisan vendor:publish --tag="laravel-user-monitoring-routes"

为了方便,您可以使用此命令来发布配置、迁移和...文件

php artisan vendor:publish --provider="Binafy\LaravelUserMonitoring\Providers\LaravelUserMonitoringServiceProvider"

发布后,运行 php artisan migrate 命令。

使用

Laravel-User-Monitoring 只需使用中间件、特质等...并不难,享受吧 :)

路由配置

如果您想自定义路由,可以使用此命令发布路由文件

php artisan vendor:publish --tag="laravel-user-monitoring-routes"

然后,您可以进入 routes/user-monitoring.php 文件并自定义路由。

此外,如果您想更改路由文件名,您可以进入配置文件并更改 file_path

/*
 * Configurations.
 */
'config' => [
    'routes' => [
        'file_path' => 'routes/user-monitoring.php',
    ],
],

用户配置

您可以使用 user-monitoring.php 配置文件配置您的用户

'user' => [
    /*
     * User model.
     */
    'model' => 'App\Models\User',

    /*
     * Foreign Key column name.
     */
    'foreign_key' => 'user_id',

    /*
     * Users table name.
     */
    'table' => 'users',

    /*
     * The correct guard.
     */
    'guard' => 'web',

    /*
     * If you are using uuid or ulid you can change it for the type of foreign_key.
     *
     * When you are using ulid or uuid, you need to add related traits into the models.
     */
    'foreign_key_type' => 'id', // uuid, ulid, id
],
  • model:如果您的用户模型存在于其他地方,您可以将其更改为正确的命名空间。
  • foreign_key:您可以设置用户外键名称,例如 customer_id
  • table:如果您的用户表不是 `users`,您可以编写您的用户表名。
  • guard:用于用户的正确守卫。

外键类型(UUID,ULID,ID)

如果你使用 uuidulid,你可以将 foreign_key_type 改为你正确的外键类型。

'user' => [
    ...

    /*
     * If you are using uuid or ulid you can change it for the type of foreign_key.
     *
     * When you are using ulid or uuid, you need to add related traits into the models.
     */
    'foreign_key_type' => 'uuid', // uuid, ulid, id
],

注意: 你必须写 uuidulidid

访问监控

当你想监控应用程序的所有视图时,你必须遵循以下步骤

  1. 发布 迁移

  2. 在 Kernel.php 中使用 VisitMonitoringMiddleware,你可以进入 App/Http 文件夹并打开 Kernel.php 文件,然后将 VisitMonitoringMiddleware 添加到你的中间件中,例如

protected $middlewareGroups = [
    'web' => [
        ...
        \Binafy\LaravelUserMonitoring\Middlewares\VisitMonitoringMiddleware::class,
    ],

    'api' => [
        // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
        \Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],
];

之后,你就可以看到所有页面的监控了 :)

如果你想要禁用特定页面的监控,你可以进入 config 文件夹中的 user-monitoring.php 文件,并将页面添加到 visit_monitoring 键中

'visit_monitoring' => [
    /*
     * You can specify pages not to be monitored.
     */
    'except_pages' => [
        'home',
        'admin/dashboard',
    ],
],

按特定日期删除访问监控记录

你可以按特定日期删除记录,Laravel-User-Monitoring 也支持这一点 🤩。

首先,你需要进入 user-monitoring 配置文件,并突出显示你想要删除的日期

'visit_monitoring' => [
    ...

    /*
     * If you want to delete visit rows after some days, you can change this to 360,
     * but if you don't like to delete rows you can change it to 0.
     *
     * For this feature you need Task-Scheduling => https://laravel.net.cn/docs/10.x/scheduling
     */
    'delete_days' => 10,
],

然后,你需要使用 任务调度 来触发相关命令,所以去 app/Console/Kernel.php 并这样做

<?php

namespace App\Console;

...
use Binafy\LaravelUserMonitoring\Commands\RemoveVisitMonitoringRecordsCommand;

class Kernel extends ConsoleKernel
{
    /**
     * Define the application's command schedule.
     */
    protected function schedule(Schedule $schedule): void
    {
         $schedule->command(RemoveVisitMonitoringRecordsCommand::class)->hourly();
    }
}

你可以将 hourly 改为 minutesecond,更多信息请阅读 调度频率选项

开启/关闭

也许你想关闭某几天或始终关闭访问监控,你可以使用配置来关闭它

'visit_monitoring' => [
    ...

    /*
     * If you want to disable visit monitoring, you can change it to false.
     */
    'turn_on' => true,
    
    ...
]

访问监控视图

Laravel-User-Monitoring 还有一个非常棒的视图,你可以非常容易地使用它,只需访问 /user-monitoring/visits-monitoring URL,并享受

Visit Monitoring Preview

Ajax 请求

也许你可以禁用 Ajax 请求的记录,你可以使用配置来禁用它

 'visit_monitoring' => [
        ...

        /*
         * If you want to disable visit monitoring in Ajax mode, set it to false.
         */
        'ajax_requests' => true,

        ...
    ],

当设置为 false 时,Ajax 请求将不会记录。

行为监控

如果你想监控你模型的行为,你可以在你的模型中使用 Actionable 特性

<?php

namespace App\Models;

use Binafy\LaravelUserMonitoring\Traits\Actionable;
use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
    use Actionable;
}

现在,当产品被读取、创建、更新或删除时,你可以看到哪些用户在执行这些操作。

如果你想要禁用某些操作,如创建,你可以使用配置文件

'action_monitoring' => [
    ...
    
    /*
     * Monitor actions.
     *
     * You can set true/false for monitor actions like (store, update, and ...).
     */
    'on_store'      => false,
    'on_update'     => true,
    'on_destroy'    => true,
    'on_read'       => true,
    'on_restore'    => false,
    'on_replicate'  => false,
],

操作监控视图

Laravel-User-Monitoring 还有一个非常棒的视图,你可以非常容易地使用,只需访问 /user-monitoring/actions-monitoring URL,并享受

Action Monitoring Preview

身份验证监控

你有没有想过监控应用程序用户的进出?现在你可以了 :)
如果你想要监控应用程序的登录或注销用户,你需要将迁移迁移到配置文件,并将监控身份验证的 true 改为 true。

'authentication_monitoring' => [
    ...

    /*
     * You can set true/false for monitor login or logout. 
     */
    'on_login' => true,
    'on_logout' => true,
],

身份验证监控视图

Laravel-User-Monitoring 还有一个非常棒的视图,你可以非常容易地使用,只需访问 /user-monitoring/authentications-monitoring URL,并享受

Authentication Monitoring Preview

如何在大型项目中使用

如果你想在大型项目中使用 Laravel-User-Monitoring,你有许多方法,但我想要提供一些提示和想法来帮助你

如果你对这个部分有想法,你可以创建 PRsissues 来帮助我们。

  1. 你可以使用这个包与 Cache 一起使用
  2. 你可以创建一个独立的数据库并将其连接到你的项目以分离监控和应用程序。

贡献者

感谢所有贡献者。 贡献者

安全

如果你发现任何与安全相关的问题,请通过电子邮件 binafy23@gmail.com 而不是使用问题跟踪器来联系。

变更日志

更新日志可以在GitHub仓库的 CHANGELOG.md 文件中找到。它列出了对Laravel用户监控包每个版本的更改、错误修复和改进。

许可证

MIT许可(MIT)。更多信息请参阅 许可文件

结论

恭喜!您已成功安装并将Laravel用户监控包集成到您的Laravel应用程序中。通过有效地记录和分析用户活动,您可以获得有价值的见解,帮助您改进应用程序的用户体验和性能。如果您有任何问题或需要进一步的帮助,请参阅文档或从包的GitHub仓库寻求帮助。祝您监控愉快!