pderas/shambles

A hashing library that will generate and add hashes to your laravel models.

v3.0.2 2021-07-05 16:41 UTC

This package is auto-updated.

Last update: 2024-04-05 23:09:16 UTC


README

composer require pderas/shambles

Table Of Contents

  1. About
  2. Installation
  3. Requirements
  4. Instructions
  5. Usage
  6. License

About

This package is designed for Laravel that adds a hash value to a model into the database.

Installation

Requirements

To use this package, the following requirements must be met:

Instructions

Once you have succesfully required the package, (v5.3 only) you must register the service provider in your config/app.php file.

Pderas\Shambles\ShamblesServiceProvider::class,

Usage

If you would like a config file for shambles to define defaults for all models.

php artisan vendor:publish --provider="Pderas\Shambles\ShamblesServiceProvider"

Back End

To use shambles you must make add a column 'hash' to the desired models in the database.

e.i. in a migration somewhere...

class MyMigration extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('my_table', function(Blueprint $table) {
            $table->string('hash')->unique();
        });
    }
}

Then all you have to do is add the Trait to the models

use Pderas\Shambles\Traits\ShamblesTrait;

class MyModel extends Model
{
    use ShamblesTrait;

    $defaultHashSize = 36;      // hash length can be set on a per model basis
    $defaultRouteKey = 'hash';  // route key can be set on a per model basis (laravel default is 'id', shambles default is 'hash') 

    ...
}

Now whenever you create a new model it will auto add a hash to it. You can then use that hash for lookups and obscure the models auto-incrementing id.

Get Request ...

http://localhost/my-model-route/{HASH}
function myModelRouteFn(Request $request, MyModel $my_model)
{
    ...
    $my_model->update(...);
    ...
}

License

This project is covered under the MIT License. Feel free to use it wherever you like.