platx/yii2-data-log

Logs for table changes in Yii2

Installs: 145

Dependents: 0

Suggesters: 0

Stars: 7

Watchers: 2

Forks: 4

Open Issues: 0

Type:yii2-extension

dev-master 2015-11-24 08:14 UTC

README

Логирование изменений в базе с возможностью последующего отката на предыдущее состояние.

Установка

Лучший способ установить - через composer.

Запустить

php composer.phar require --prefer-dist platx/yii2-data-logger "*"

либо добавить

"platx/yii2-data-logger": "*"

в секцию require в файле composer.json Вашего приложения.

Использование

После установки нужно создать и накатить миграцию на создание таблицы для логов:

class m151123_135616_create_table_data_log extends \platx\datalog\DataLogMigration{}

Дальше нужно подключить поведение к моделям, которые могут учавствовать в логировании:

public function behaviors()
{
    return [
        'data-log' => [
            'class' => 'platx\datalog\DataLogBehavior',
            'apps' => ['app-backend', 'app-frontend'],
        ]
        ...
    ];
}

где apps - массив с ID разрешенных приложений, которые будут логироваться, по умолчанию - app-backend.

Логирование настроено. Дополнительным функционалом является откат изменений на предыдущее состояние, для этого можно воспользоваться следующими екшенами в нужном контроллере:

public function actions()
{
    return [
        'index' => [
            'class' => 'platx\datalog\actions\IndexAction',
            'viewFile' => 'index',
            'pageSize' => 20
        ],
        'view' => [
            'class' => 'platx\datalog\actions\ViewAction',
            'viewFile' => 'view'
        ],
        'rollback' => [
            'class' => 'platx\datalog\actions\RollbackAction',
            'redirectUrl' => ['index']
        ],
        'delete' => [
            'class' => 'platx\datalog\actions\DeleteAction',
            'redirectUrl' => ['index']
        ],
    ];
}

где viewFile - представление, куда выводить данные. pageSize - количество записей на страницу, redirectUrl - куда перенаправлять.

IndexAction в представление передает $dataProvider, ViewAction - $model.