julesgraus/actionlogs

此包最新版本(1.0.0)没有可用的许可信息。

动作日志工具

1.0.0 2023-03-06 03:30 UTC

This package is auto-updated.

Last update: 2024-09-12 23:36:54 UTC


README

记录用户在您的Laravel应用程序中执行的所有动作。

安装

您可以通过composer安装此包

composer require julesgraus/actionlogs

用法

直接记录

您可以这样直接记录动作

JulesGraus\Actionlogs\Actionlogs::log('your action', 'a payload');

记录的动作将与已认证的用户(如果有)关联。有效载荷可以是任何东西,但不能是资源。

自动记录

默认情况下,此包通过监听Illuminate\Auth\Events命名空间中的某些事件来自动记录这些事件。以下是这些事件的列表

  • 登录
  • 登出
  • 失败
  • 锁定
  • 注册
  • 密码重置
  • 验证

如果您想监听更多事件,可以这样做。例如

JulesGraus\Actionlogs\Actionlogs::listenToAndLog(MyCustomEvent::class, fn(MyCustomEvent::class $event) => 'Logging something for my customevent: '.$event->user->email)

将此行代码放入实现中服务提供者的register方法中。

管家

此包与julesgraus/housekeeper兼容。将JulesGraus\Actionlogs\Actionlogs类注册到管家中,并阅读配置选项以获取更多信息。

自定义

配置和本地化

通过运行php artisan vendor:publish --tag=actionlogs发布此包的配置文件和翻译文件。然后您可以编辑将要放入config目录的配置文件。以及放入resources/lang/vendor/actionlogs的翻译

重写默认Actionlog模型

当此包的默认actionlog模型不提供您想要的功能时,您可以自己创建一个自定义模型。

只需确保它实现了JulesGraus\Actionlogs\Contracts\Actionlog,然后像这样将其注册到Laravel容器的服务提供者register方法中

use Illuminate\Support\ServiceProvider;
use App\Actionlogs\MyCustomActionLog;
use JulesGraus\Actionlogs\Contracts\Actionlog as ActionlogContract;

class AppServiceProvider extends ServiceProvider {
    register() {
        $this->app->bind(ActionlogContract::class, MyCustomActionlog::class);
    }
}

还确保您的自定义实现可以接受任何变量类型的有效载荷属性,但不能是资源类型。

重写其他内容

像actionlog模型一样,您也可以通过实现并注册这些接口在JulesGraus\Actionlogs\Contracts命名空间中重写其他内容

  • ActionlogPolicy
  • ActionlogResource
  • ActionlogResourceCollection

请将资源和集合绑定到一个返回实现类名称的函数上。否则,Laravel将尝试实例化这些类,并抱怨它无法解析的资源参数。

测试

在包的根目录中运行此命令以运行测试。

composer test