tpenaranda/model-log
Composer 安装命令:
composer require tpenaranda/model-log
包简介
A Laravel 5 package to automatically log attributes changes on any of your app models.
README 文档
README
A Laravel package to automatically log attributes changes on any of your app models.
About package
This package is intended for tracking changes of your Eloquent models inside your Laravel application. A new DB table will be created and everytime a model attribute is updated an entry will be automatically created on the DB log table.
Installation
Install package using Composer.
$ composer require tpenaranda/model-log
Run migrations to create ModelLog table.
$ php artisan migrate
[This step is not needed on Laravel >= 5.5] Add service provider and create ModelLog DB table.
Add service provider and alias in config/app.php
'providers' => [
...
TPenaranda\ModelLog\Providers\ModelLogServiceProvider::class,
],
'aliases' => [
...
'ModelLogEntry' => TPenaranda\ModelLog\ModelLogEntry::class,
'ObservedByModelLog' => TPenaranda\ModelLog\Traits\ObservedByModelLog::class,
],
Run ModelLog command in order to create ModelLog DB table.
$ php artisan model-log:create-log-table
Usage
Add 'ObservedByModelLog' trait to your model and specify attributes you want to observe/track for changes.
use TPenaranda\ModelLog\Traits\ObservedByModelLog;
class MyModel extends Model
{
use ObservedByModelLog;
protected $log = ['my_attribute', 'track_this_column_too'];
}
Now after every update on that model, observed attributes will be logged automatically.
Use protected $log = 'all'; (notice the string, not array) to log any change.
Retrieve log entries:
$my_model->logEntries;
Advanced usage
Retrieve log entries using query scopes:
\ModelLogEntry::whereModelClass('App\MyModel')->whereAttribute('my_attribute')->whereTo('value_after_change')->get();
Available scopes:
- whereModel(
<object>): Get logs of an specific Eloquent Model (example: get log data of MyModel ID #4). - whereModelClass(
<string/object>): Get logs for an specific model class (example: get entries where MyModel class is involved, regardless of any IDs). - whereAttribute(
<string>): Get only logs where some specific attribute was changed. - whereFrom(
<string>): Get only logs with an specific initial value. - whereTo(
<string>): Get only logs with an specific end value. - ModifiedByUser(
<numeric/object>): Get changes done by some specific user. Allowed parameters: null, numeric IDs or User object.
The following scopes only accept Carbon objects as parameters:
- loggedBefore(
<Carbon object>): Retrieve only entries logged prior to specific date. - loggedAfter(
<Carbon object>): Retrieve only entries logged after specific date. - withinDateRange(
<Carbon object>,<Carbon object>): Retrieve only entries logged after first parameter and prior to second parameter.
Create (or drop and create) ModelLog table manually:
$ php artisan model-log:create-log-table
Flush ModelLog table:
\ModelLogEntry::flushAll();
tpenaranda/model-log 适用场景与选型建议
tpenaranda/model-log 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.28k 次下载、GitHub Stars 达 2, 最近一次更新时间为 2018 年 01 月 03 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「log」 「model」 「Audit」 「attributes」 「laravel」 「track」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 tpenaranda/model-log 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 tpenaranda/model-log 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 tpenaranda/model-log 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Log adding/updating/deleting of elements
Doctrine ORM provider for the auditor audit-log library.
A package for automatically encrypting and decrypting Eloquent attributes in Laravel 5.5+, based on configuration settings.
Interfaces for web resource models and services to retrieve and create them
PB Web Media Audit Bundle for Symfony
Laravel 5 - Repositories to the database layer
统计信息
- 总下载量: 1.28k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 12
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-or-later
- 更新时间: 2018-01-03