README.md
# Laravel Process Stamps
[![Latest Version on Packagist](https://img.shields.io/packagist/v/always-open/laravel-process-stamps.svg?style=flat-square)](https://packagist.org/packages/always-open/laravel-process-stamps)
[![Build Status](https://img.shields.io/github/workflow/status/always-open/laravel-process-stamps/tests?style=flat-square)](https://github.com/always-open/laravel-process-stamps/actions?query=workflow%3Atests)
[![Total Downloads](https://img.shields.io/packagist/dt/always-open/laravel-process-stamps.svg?style=flat-square)](https://packagist.org/packages/always-open/laravel-process-stamps)
[![Maintainability](https://api.codeclimate.com/v1/badges/f7dfbbd4462347976259/maintainability)](https://codeclimate.com/github/always-open/laravel-process-stamps/maintainability)
It is sometimes very useful to know which process created or modified a particular record in your database. This package provides a trait to add to your Laravel models which automatically logs that for you.
## Installation
You can install the package via composer:
```bash
composer require always-open/laravel-process-stamps
```
## Configuration
``` php
php artisan vendor:publish --provider="\AlwaysOpen\ProcessStamps\ProcessStampsServiceProvider"
```
Running the above command will publish both the migration and the config file.
## Usage
After adding the proper fields to your table, add the trait to your model.
``` php
// User model
class User extends Model
{
use ProcessStampable;
```
Next, create a migration for your table and include the following:
```php
$table->processIds();
```
To specify your own foreign key or index names, include the following options:
```php
$table->processIds([
'created_index_name' => 'custom_created_index_name',
'updated_index_name' => 'custom_updated_index_name',
'created_foreign_key_name' => 'custom_created_foreign_key_name',
'updated_foreign_key_name' => 'custom_updated_foreign_key_name',
]);
```
That will generate the nessesary field names to track processes.
### Testing
``` bash
composer test
```
## Using Docker
All assets are set up under the docker-compose.yml file. The first time you run the docker image you must build it with
the following command:
```bash
docker-compose build
```
Then you can bring it up in the background using:
```bash
docker-compose up -d
```
And the image is aliased so you can access its command line via:
```bash
docker exec -it processes-stamp-app /bin/bash
```
From there you can run the tests within an isolated environment
## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
### Security
If you discover any security related issues, please email @tomschlick or @qschmick directly instead of using the issue tracker.
## Credits
- [Tom Schlick](https://github.com/tomschlick)
- [All Contributors](../../contributors)
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.