bupy7/yii2-activerecord-history This extension adds storage history of changes to the ActiveRecord model.

extensionbehavioractiverecordmodulemodelhistorychanges

yii2-activerecord-history

Latest Stable Version Total Downloads Latest Unstable Version License Build Status Coverage Status

This extension adds storage history of changes to the ActiveRecord model.

Extension can tacking changes to model and save to storage. Allowed only storage to database. All changes saved to table in database.

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist bupy7/yii2-activerecord-history "*"

or add

"bupy7/yii2-activerecord-history": "*"

to the require section of your composer.json file.

Usage

NOTICE! Configuration of module must have in common/config/main.php if you will use andanced template. Or add configuration in both config/web.php and config/console.php if you will use basic template.

Register of module to config file:

'modules' => [
    'arhistory' => [
        'class' => 'bupy7\activerecord\history\Module',
    ],
],

Name of module can be any (example: history, custom-name and etc).

Add module in bootstrap to config file:

'bootstrap' => ['arhistory'],

Run migration:

php ./yii migrate/up --migrationPath=@bupy7/activerecord/history/migrations

Attach behavior to model:

use bupy7\activerecord\history\behaviors\History as HistoryBehavior;

$model->attachBehavior('arHistory', HistoryBehavior::className());

Configuration

Module configuration:

'modules' => [
    'arhistory' => [
        'class' => 'bupy7\activerecord\history\Module',
        'tableName' => '{{%arhistory}}', // table name of saving changes of model
        'storage' => 'bupy7\activerecord\history\storages\Database', // class name of storage for saving history of active record model
        'db' => 'db', // database connection component config or name
        'user' => 'user', // authentication component config or name
    ],
],

Behavior configuration:

use bupy7\activerecord\history\behaviors\History as HistoryBehavior;

$model->attachBehavior('arHistory', [
    'class' => HistoryBehavior::className(),
    // allowed events list than are monitored and saved in storage.
    'allowEvents' => [
        HistoryBehavior::EVENT_INSERT,
        HistoryBehavior::EVENT_UPDATE,
        HistoryBehavior::EVENT_DELETE,
    ],
    // list of attributes which not need track at updating. Apply only for `HistoryBehavior::EVENT_UPDATE`.
    'skipAttributes' => [
        'name_of_attribute_1',
        'name_of_attribute_2',
    ],
    // list of custom attributes which which are a pair of `key`=>`value` where `key` is attribute name and
    // `value` it anonymous callback function of attribute. Function will be apply for old and value information data.
    // Apply only for `HistoryBehavior::EVENT_UPDATE`.
    'customAttributes' => [
        'name_of_attribute_3' => function($event, $isNewValue) {
            if ($isNewValue) {
                return $event->sender->name_of_attribute_3; 
            }
            return $event->changedAttributes['name_of_attribute_3'];
        },
    ],
]);

License

yii2-activerecord-history is released under the BSD 3-Clause License.

Changelog

yii2-activerecord-history

v1.2.0 [2019-07-10]

  • Changed access modifiers in bupy7\activerecord\history\behaviors\History. (VictorSuhov)

v1.1.2 [2018-10-24]

  • Added support PHP 7.2.
  • Added the shim class for \yii\base\Object and yii\base\BaseObject.

v1.1.1 [2018-06-04]

  • Fixed Readme. (cybernic)

v1.1.0 [2018-02-24]

  • Added tests.
  • Fixed table options in a migration.
  • Small refactoring.
  • Fixed condtion of skipAttributes.

v1.0.0 [2016-01-04]

  • First release.

Statistics

Downloads
GitHub Stars
GitHub Forks

Releases

Comments



1.2.0 is the latest of 5 releases



BSD-3-Clause license
Stats
23 github stars & 16 github forks
11 downloads in the last day
70 downloads in the last 30 days
3141 total downloads