codewiser / journalism
1.2.5
2020-05-11 07:15 UTC
Requires
- ext-json: *
- laravel/framework: >=5.8
README
记录任何(模型或自定义)事件以存储和回顾历史
服务提供者
将包添加到您的应用服务提供者中 config/app.php
文件。
'providers' => [ /* * Laravel Framework Service Providers... */ Illuminate\Foundation\Providers\ArtisanServiceProvider::class, Illuminate\Auth\AuthServiceProvider::class, ... /** * Third Party Service Providers... */ Codewiser\Journalism\JournalServiceProvider::class, ],
迁移
将包迁移发布到您的应用中。请在终端中运行以下命令。
php artisan vendor:publish --provider="Codewiser\Journalism\JournalServiceProvider"
并运行迁移。
php artisan migrate
作为特性使用
将 Journal
添加到您的模型。
class Post extends Model { use Codewiser\Journalism\Traits\Journalised; }
目前,每个 Eloquent 事件都将被记录。
您还可以记录任何想要的事件。
$post = Post::first(); // Record an event $post->journalise('my-event');
您可以在日志中添加任何想要的负载。
$post->journalise('my-event', /* jsonable data */);
或作为观察者使用
class AppServiceProvider extends ServiceProvider { public function boot() { Post::observe(Codewiser\Journalism\Observers\Journalist::class); } }
认证订阅者
包提供记录认证事件的机制。
class EventServiceProvider extends ServiceProvider { protected $subscribe = [ Codewiser\Journalism\Subscribers\Concierge::class, ]; }
订阅者检测
auth/register
、auth/login
、auth/logout
、auth/reset-password
和auth/fail
事件。
自定义日志记录
让我们想象一下,每次用户想要更新帖子时,他必须解释,为什么进行了更改。
class Controller { public function update(Request $request, $id) { $post = Post::find($id); $post->journalise('comment', $request->get('comment')); $post->update($request->all()); } }
访问历史
您有权访问完整的历史记录,包括用户解释。
foreach ($post->journal as $record) { echo "At {$record->created_at} user {$record->user['name']} makes {$record->event}\n"; echo "Payload was: " . json_encode($record->payload); }