PHPackages                             cozmostars/bitacorizable - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. cozmostars/bitacorizable

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

cozmostars/bitacorizable
========================

Trait Bitacorizable - Laravel 10+ para registrar bitácoras automáticas de cualquier modelo

v1.1.2(1y ago)07MITPHPPHP ^8.1

Since Apr 12Pushed 1y ago1 watchersCompare

[ Source](https://github.com/CozmoStars/bitacorizable)[ Packagist](https://packagist.org/packages/cozmostars/bitacorizable)[ RSS](/packages/cozmostars-bitacorizable/feed)WikiDiscussions main Synced 1mo ago

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

Bitacorizable
=============

[](#bitacorizable)

**Bitacorizable** es un Trait para Laravel 10+ que registra automáticamente bitácoras (logs) en la base de datos cuando se **crean**, **actualizan** o **eliminan** modelos Eloquent.

Registra en la tabla `bitacoras` el historial detallado de los cambios, con los campos modificados y sus valores antes/después.

> 🔒 Los campos sensibles como `password` se excluyen automáticamente.

Desarrollado por [CozmoStars](https://github.com/cozmostars) 🛠

---

🚀 Instalación
-------------

[](#-instalación)

Requiere **PHP &gt;= 8.1** y Laravel **10.x**, **11.x** o **12.x**.

```
composer require cozmostars/bitacorizable
```

Laravel registrará automáticamente el Service Provider gracias a `extra.laravel.providers`.

---

📂 Publicar migración personalizada
----------------------------------

[](#-publicar-migración-personalizada)

Este paquete **incluye una migración que puedes publicar y modificar** si tu tabla `users` no usa `id` como clave primaria (por ejemplo, si usas `idUsuario`):

```
php artisan vendor:publish --tag=bitacorizable-migrations
```

Luego edita la migración publicada y ajusta la clave foránea si es necesario:

```
$table->foreign('user_id')->references('idUsuario')->on('users');
```

Y después ejecuta:

```
php artisan migrate
```

> ⚠️ Si no necesitas modificar la migración, puedes simplemente correr `php artisan migrate` sin publicar nada.

---

⚙️ Uso
------

[](#️-uso)

Agrega el trait `Bitacorizable` a cualquier modelo que quieras auditar:

```
use CozmoStars\Bitacorizable\Bitacorizable;

class User extends Model
{
    use Bitacorizable;
}
```

¡Y listo! Cualquier `create`, `update` o `delete` sobre este modelo será registrado automáticamente en la tabla `bitacoras`.

---

🧠 ¿Qué registra?
----------------

[](#-qué-registra)

Evento¿Qué guarda?createdTodos los campos iniciales del modelo (excluyendo los ignorados)updatedSolo los campos modificados con su valor `antes` y `después`deletedTodos los valores del modelo antes de eliminarlo---

📄 Ejemplo de log generado
-------------------------

[](#-ejemplo-de-log-generado)

### 🔹 UPDATE

[](#-update)

```
{
  "name": {
    "antes": "Said Guerrero",
    "después": "Said G."
  },
  "email": {
    "antes": "said@example.com",
    "después": "contacto@cozmostars.dev"
  }
}
```

### 🔹 CREATED

[](#-created)

```
{
  "name": "Said Guerrero",
  "email": "said@example.com",
  "curp": "GUFA950919HDFRRD05"
}
```

### 🔹 DELETED

[](#-deleted)

```
{
  "id": 14,
  "name": "Empleado Inactivo",
  "email": "empleado@empresa.com"
}
```

---

🧩 Tabla `bitacoras`
-------------------

[](#-tabla-bitacoras)

CampoDescripción`id`ID autoincremental`user_id`Usuario que ejecutó la acción (nullable)`model_type`Clase del modelo afectado (ej. `App\Models\User`)`model_id`ID del modelo afectado`mensaje`Descripción textual (`Registro creado`, etc.)`codigo`Código del evento (`create`, `update`, `delete`)`log`JSON con los valores previos y posteriores`created_at`Fecha de la acción---

❌ Exclusión de campos
---------------------

[](#-exclusión-de-campos)

Se excluyen por defecto:

- `created_at`
- `updated_at`
- `password`

Puedes agregar más en tu modelo:

```
protected array $bitacoraCamposIgnorados = [
    'remember_token',
    'api_token',
];
```

---

🧬 Relación con el modelo original
---------------------------------

[](#-relación-con-el-modelo-original)

El modelo `Bitacora` define una relación polimórfica `model()` que te permite acceder al registro afectado:

```
$bitacora = Bitacora::first();
$registroOriginal = $bitacora->model; // Ej. instancia de User, Post, etc.
```

---

✨ Ejemplo de consulta desde tu app
----------------------------------

[](#-ejemplo-de-consulta-desde-tu-app)

```
Bitacora::where('model_type', 'App\\Models\\User')
    ->where('model_id', 9)
    ->latest()
    ->get();
```

---

📦 Requerimientos
----------------

[](#-requerimientos)

- Laravel 10, 11 o 12
- PHP 8.1 o superior
- Base de datos compatible con `jsonb` (idealmente PostgreSQL, aunque también funciona con MySQL 5.7+)

---

💡 Contribuciones
----------------

[](#-contribuciones)

Si deseas aportar mejoras, sugerencias o reportar errores, eres bienvenido a participar en el repositorio:

👉

---

📄 Licencia
----------

[](#-licencia)

MIT © 2025 [Said Guerrero](https://github.com/cozmostars)

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance47

Moderate activity, may be stable

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

4

Last Release

393d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/956684581f7de7e0d00e84f97065084ef13caa70145b830ed44c5f8d8fa9ca3c?d=identicon)[CozmoStars](/maintainers/CozmoStars)

---

Top Contributors

[![CozmoStars](https://avatars.githubusercontent.com/u/49501760?v=4)](https://github.com/CozmoStars "CozmoStars (8 commits)")

### Embed Badge

![Health badge](/badges/cozmostars-bitacorizable/health.svg)

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

###  Alternatives

[barryvdh/laravel-ide-helper

Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.

14.9k123.0M683](/packages/barryvdh-laravel-ide-helper)[orchestra/canvas

Code Generators for Laravel Applications and Packages

21017.2M157](/packages/orchestra-canvas)[illuminate/pipeline

The Illuminate Pipeline package.

9446.6M210](/packages/illuminate-pipeline)[illuminate/pagination

The Illuminate Pagination package.

10532.5M858](/packages/illuminate-pagination)[spatie/laravel-pjax

A pjax middleware for Laravel 5

513371.8k11](/packages/spatie-laravel-pjax)[spatie/laravel-mix-preload

Add preload and prefetch links based your Mix manifest

169176.0k2](/packages/spatie-laravel-mix-preload)

PHPackages © 2026

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