hanifhefaz/user-model-activity

将模型活动记录到日志文件中。

1.0.0 2023-10-15 06:42 UTC

This package is auto-updated.

Last update: 2024-09-15 08:57:28 UTC


README

简介

介绍用户模型活动包:轻松跟踪模型中的更改

你是否曾经需要一种简单而有效的方式来跟踪和记录对Laravel模型所做的更改?不用再找了!我们非常高兴地推出我们的User Model Activity包,该包可以将模型事件(如创建、更新和删除)的日志保存到方便的日志文件中。使用此包,监控和审核应用程序模型中的更改从未如此简单。

安装

您可以使用Composer安装此包。

composer require hanifhefaz/user-model-activity

安装后,运行以下命令以发布必要的资源和文件

php artisan vendor:publish --provider="Hanifhefaz\UserModelActivity\UserModelActivityServiceProvider"

就这样。您已成功安装并发布了所需的包资源和文件。

用法

一旦安装并配置了该包,您就可以开始使用它来跟踪模型中的更改。按照以下步骤开始

  • 日志文件配置

    首先,请访问您的 config/logging.php 并将以下内容添加到channels数组中

    /*
    * Logging.php
    */
        'channels' => [
            // existing code ...
    
            // 'stack' => [
            //     'driver' => 'stack',
            //     'channels' => ['single'],
            //     'ignore_exceptions' => false,
            // ],
    
            // ...
    
            'user-model-activity' => [
                'driver' => 'single',
                'path' => storage_path('logs/user-model-activity.log'),
                'level' => 'debug',
            ],
        ]

    现在,您可以在模型内部使用 UserModelActivityLogger 特性,所有日志都将被跟踪。

    <?php
    
    namespace App\Models;
    
    use Hanifhefaz\UserModelActivity\Traits\UserModelActivityLogger;
    use Illuminate\Database\Eloquent\Model;
    
    class Post extends Model
    {
        use UserModelActivityLogger;
        protected $fillable = ['title', 'content'];
    }

    就是这样。现在只需访问 user-activity URL,选择您保存日志的文件。您将看到所有日志。

    View

结论

User Model Activity包为跟踪对Laravel模型所做的更改提供了一种简单且高效的解决方案。它简化了监控、审核和调试模型相关更改的过程。使用User Model Activity包提高应用程序的可维护性,并从您的数据中获得宝贵的见解。

贡献

欢迎贡献!请选择已知问题、未来计划或实现您自己的想法,以帮助该包发展。

当前贡献者:贡献者

已知问题和未来计划

  • 为了进一步改进包,我们计划在日志视图中进行一些更改。目前它尚未优化。

  • 更好的方法是将用户详细信息集成到日志中。目前,它将保存模型详细信息,如果您的模型有created_by,它将被记录,但我们需要更好的方法。

  • 以更好的方式解析日志。

  • 如果特性和spatie的Role和Permission模型从父模型扩展,则特性和spatie的Role和Permission模型将不起作用,如下所示

<?php

namespace App\Models;

use Hanifhefaz\UserModelActivity\Traits\UserModelActivityLogger;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Spatie\Permission\Models\Permission as ParentPermission;

class Permission extends ParentPermission
{
    use HasFactory;
    use UserModelActivityLogger;

    protected $fillable = [
        'id','name','created_at','updated_at'
    ];

}

如果您发现任何问题,请将其发布到问题部分。