always-open/laravel-process-stamps

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# 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.