neoacevedo / yii2-auditing
Registra cambios de sus modelos ActiveRecord de Yii2
Fund package maintenance!
Ko Fi
Installs: 39
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- php: >=8.0
- yiisoft/yii2: ~2.0.45
README
Registra cambios de sus modelos ActiveRecord de Yii2.
Este paquete permite mantener un historial de cambios de los modelos proveyendo información sobre posibles discrepancias o anomalías en la información que puedan indicar actividades sospechosas. La información recibida y almacenada se puede posteriormente desplegar de diversas maneras.
Instalación
La forma preferida de instalar esta extensión es a través de composer.
Luego ejecute
php composer.phar require --prefer-dist neoacevedo/yii2-auditing "*"
o agregue
"neoacevedo/yii2-auditing": "*"
a la sección require de su archivo composer.json
.
Uso
Una vez que la extensión está instalada, en el archivo de configuración de la consola de su aplicación, agregue en la zona migrationPath
... '@vendor/neoacevedo/yii2-auditing/neoacevedo/auditing/migrations', ...
luego, agregue en el código de su modelo dentro del método behaviors
:
public function behaviors() { return [ [ 'class' => \neoacevedo\auditing\behaviors\AuditBehavior::class, 'deleteOldData' => true, // Para borrar datos antiguos del registro de eventos 'deleteNumRows' => 20, // Borra esta cantidad de registros 'ignored' => ['foo', 'bar'], // No registra en el registro de eventos estos atributos del modelo ], ... ]; }
Desplegando la información
Puede desplegar la información como cualquier modelo que haya implementado dentro de su aplicación web.
Puede hacer uso de un controlador y una vista que use GridView
para listar el historial. Por ejemplo, puede crear un controllador que se llame AuditingController
y crear el método actionIndex
como lo siguiente:
/** * Lists all Auditing models. * * @return string */ public function actionIndex() { $searchModel = new AuditingSearch(); $dataProvider = $searchModel->search($this->request->queryParams); return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); }
Para visualizar los datos, crear el método actionView
:
/** * Displays a single Auditing model. * @param int $id ID * @return string * @throws NotFoundHttpException if the model cannot be found */ public function actionView($id) { return $this->render('view', [ 'model' => $this->findModel($id), ]); }
Dentro de la vista view
puede agregar el GridView
para listar el histórico:
... <?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], 'id', 'user_id', 'description', 'event', 'model', 'attribute', 'old_value', 'new_value', 'action', 'ip', 'created_at', ], ]); ?> ...