pderas/shambles

A hashing library that will generate and add hashes to your laravel models.
39,582
Install
composer require pderas/shambles
Latest Version:v3.0.2
PHP:>=5.5.9
License:MIT
Last Updated:Jul 5, 2021
Links: GitHub  ·  Packagist
Maintainer: reed-jones

Shambles

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.

Related Packages

ammardev/laravel-wp-hash-driver

Supports Wordpress passwords hashing and checking in Laravel's Hash facade.

9,382 16
larapack/attribute-hashing

Allows you to define what attributes in your Eloquent Model which should be hash...

1,236 2
hisorange/laravel-hash

Replace the BCrypt hashing with native PHP hashing algorithm for Laravel.

8 1
torann/hashids

Laravel package for Hashids

349,953 54
vjroby/laravel-pbkdf2

This is a package for wrapping PBKDF2 class and using it in Laravel as a facade

50,220 2