PHPackages                             radig/auditable - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. radig/auditable

AbandonedCakephp-plugin[Logging &amp; Monitoring](/categories/logging)

radig/auditable
===============

Log all database changes

2.0.1(12y ago)151.2k11[3 issues](https://github.com/radig/auditable/issues)MITPHPPHP &gt;=5.3.0

Since Sep 10Pushed 12y ago8 watchersCompare

[ Source](https://github.com/radig/auditable)[ Packagist](https://packagist.org/packages/radig/auditable)[ Docs](https://github.com/radig/Auditable)[ RSS](/packages/radig-auditable/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (1)Versions (4)Used By (0)

CakePHP Auditable [![Build Status](https://camo.githubusercontent.com/38215657d24f56fc3e9b984ffe8335b185f6cc5fa0f37e0cd2f81d09ef8d9fbb/68747470733a2f2f7472617669732d63692e6f72672f72616469672f617564697461626c652e706e673f6272616e63683d6d6173746572 "Build Status")](https://travis-ci.org/radig/auditable)
=============================================================================================================================================================================================================================================================================================================

[](#cakephp-auditable-)

Este plugin inclui funções para tornar a auditoria de sistemas em CakePHP mais simples.
A ideia central é manter a informação de qual usuário fez o quê, e quando isso foi feito.

Como usar
---------

[](#como-usar)

O Plugin utiliza uma classe estática como “repositório” das configurações globais dele. Estas configurações ficam então acessíveis ao Behavior e Helper, garantindo funcionamento correto de ambos.

### Classe AuditableConfig

[](#classe-auditableconfig)

É a classe que armazena as configurações do Plugin. Tem acesso estático aos seus quatro atributos, que são:

- **responsibleModel** Uma string com o nome do Modelo que armazena os usuários do sistema;
- **responsibleId** Um inteiro que representa o ID do usuário logado no sistema;
- **Logger** A instância de um Modelo válido para salvar os logs;
- **serialize** Uma string contendo o nome de uma função válida para serializar arrays;
- **unserialize** Uma string contendo o nome de uma função válida para deserializar strings geradas pela função definida no atributo anterior.

No próximo item é sugerido uma forma de definir esses atributos para toda a aplicação.

Em todo lugar que precisar acessar esta classe (inclusive na hora de definir suas propriedades), faça a sua inclusão para garantir que esteja definida naquele escopo:

```
App::uses('AuditableConfig', 'Auditable.Lib');
```

### Configuração mínima do Plugin

[](#configuração-mínima-do-plugin)

Existem duas configurações mínimas: a primeira é definir O Modelo que persistirá a mensagem
de log, a segunda é definir, logo que esteja disponível, a informação sobre o usuário logado.

Para a primeira, é preferível sobrecarregar o construtor do AppModel de maneira que a instância
do Modelo esteja pronta sempre que necessária. No seu AppModel faça algo como:

```
public function __construct($id = false, $table = null, $ds = null) {
	if(get_class($this) !== 'Logger' && empty(AuditableConfig::$Logger)) {
		// Caso deseje usar o modelo padrão, utilize como abaixo, caso contrário você pode usar qualquer modelo
		AuditableConfig::$Logger = ClassRegistry::init('Auditable.Logger', true);
	}

	parent::__construct($id, $table, $ds);
}
```

Para a informação do usuário logado, uma sugestão é usar o callback do AppController, deixando-o mais ou menos assim:

```
public function beforeFilter() {
	parent::beforeFilter();

	if($this->Auth->loggedIn()) {
		AuditableConfig::$responsibleId = $this->Auth->user('id');
	}
}
```

Em seguida você deve configurar em cada um dos modelos auditáveis o behavior Auditable, incluindo
ele em seu $actsAs da seguinte maneira

```
public $actsAs = array('Auditable.Auditable');
```

### Behavior Auditable

[](#behavior-auditable)

É possível configurar alguns items do behavior, são eles:

- **auditSql** : Opção para habilitar o log das queries geradas pelo CakePHP. O padrão é true.
- **skip** : Lista (array) com nome dos campos que devem ser ignoradas no log.
- **fields** : Aceita os dois índices abaixo
    - **created** : Nome do campo presente em cada modelo para armazenar quem criou o registro
    - **modified** : Nome do campo presente em cada modelo para armazenar quem alterou o registro

### Helper Auditor

[](#helper-auditor)

Suas configurações são:

- **formats** : Um array com os diferentes formatos utilizados nos logs, conforme abaixo
    - **general** : Uma string que será usada como descrição do log. Aceita dois placeholders: ‘:action’ e ‘:data’ que representam respectivamente a ação (criação ou modificação) e o que foi efetivamente alterado.
    - **prepend** : Uma string que será prefixada em cada campo do log. Não aceita placeholders.
    - **pospend** : Uma string que será pósfixada em cada campo do log. Não aceita placeholders.
    - **create** : Uma string que será usado para logs de criação. Aceita os placeholders ‘:field’ e ‘:value’
    - **modify** : Um string que será usada para logs de modificação. Aceita os placeholders ‘:field’, ‘:old’ e ‘:new’
    - **delete** : Uma string que será usada para logs de remoção. Aceita os placeholders ‘:field’ e ‘:value’

Para usa-lo na view, basta invocar o método *format*

```
echo $this->Auditor->format($data['LogDetail']['difference'], $data['Logger']['type']);
```

Onde o primeiro parâmetro é a coluna ‘difference’ do modelo LogDetail e o segundo é o tipo de log (‘create’, ‘modify’, ‘delete’).

Autor e Copyright
-----------------

[](#autor-e-copyright)

- **Copyright 2011-2013,** [**Radig – Soluções em TI**](http://www.radig.com.br)
- Licença MIT – Isto quer dizer que o código está disponível sem nenhuma garantia, ao mesmo tempo que
    você pode usa-lo de forma isolada ou em conjunto com seu próprio código.

Observações
-----------

[](#observações)

- Este behavior requer PHP versão &gt;= 5.3
- Compatível com CakePHP 2.x
- Consulte o branch 1.3 para à versão com suporte ao CakePHP 1.3 e PHP &gt;= 5.2
- Consulte os testes incluído no plugin para ver melhor seu funcionamento

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance16

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 97.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

4675d ago

Major Versions

1.0.0 → 2.0.02013-09-10

### Community

Maintainers

![](https://www.gravatar.com/avatar/6b5400117f71ee0df6868fd300a96fceb0405ee8e959ea2df3116387d41c5a83?d=identicon)[CauanCabral](/maintainers/CauanCabral)

---

Top Contributors

[![CauanCabral](https://avatars.githubusercontent.com/u/83092?v=4)](https://github.com/CauanCabral "CauanCabral (44 commits)")[![ssaeki](https://avatars.githubusercontent.com/u/385562?v=4)](https://github.com/ssaeki "ssaeki (1 commits)")

---

Tags

logcakephpAuditAuditablehistoricradig

### Embed Badge

![Health badge](/badges/radig-auditable/health.svg)

```
[![Health](https://phpackages.com/badges/radig-auditable/health.svg)](https://phpackages.com/packages/radig-auditable)
```

###  Alternatives

[robwilkerson/cakephp-audit-log-plugin

Audit Plugin for CakePHP

10068.1k](/packages/robwilkerson-cakephp-audit-log-plugin)[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.3k10](/packages/helsingborg-stad-municipio)[sandreu/cake-sentry

Sentry error handler plugin for CakePHP2

1640.3k](/packages/sandreu-cake-sentry)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
