drewlabs/changelog

声明用于处理数据库表属性变更的类和契约的库

v0.1.0 2024-03-01 19:43 UTC

This package is auto-updated.

Last update: 2024-09-30 21:20:08 UTC


README

该表更改日志库提供了应用数据库中表行更改的抽象实现。它应该用于跟踪SQL数据库中的列更改并将日志集中存储在项目定义的存储中。

用法

该库提供简单的API来注册和记录项目中的更改。要注册一个用于记录更改的驱动程序

<?php

// ...
use Drewlabs\Changelog\Logger;
// ...
// At the root of your application or when your application bootstraps

Logger::getInstance()->registerDriver(new MyLogger);

// or using a factory function
Logger::getInstance()->registerDriver(function() {
    return MyLogger
}, 'myLog');

注意 Logger 是一个单例实例,它在应用程序中全局注册日志记录器,如果不希望共享状态,则应谨慎使用。

在全局处理器中注册您的日志记录器后,您可以通过调用全局日志记录器的 logChange 方法来记录任何表更改

// In some part of the code where we need to log table column changes
Logger::getInstance()->logChange('table_name', 'model_key', 'property_name', 'old_value', 'current_value', 'logged_by');

注意 查看与laravel eloquent库兼容的驱动程序实现以及与 php-amqplib/php-amqplib 兼容的消息队列实现。