julesgraus / actionlogs
动作日志工具
Requires
- php: ^8.0
- julesgraus/housekeeper: ^1.0
- laravel/framework: ^9.0|^10.0
Requires (Dev)
- orchestra/testbench: ^7.0.0
- phpunit/phpunit: ^9.3
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