Automatic model ID obfuscation in routes for Laravel 5
Clone or download

README.md

Laravel FakeID

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads License

Enables automatic Eloquent model ID obfuscation in routes using Optimus.

Installation

  1. Run the Composer require command to install the package

    composer require propaganistas/laravel-fakeid
  2. The package will automatically register itself.

  3. Run the following artisan command to auto-initialize the package's settings

    php artisan fakeid:setup

Usage

First of all, make sure the model is bound to Laravel's Router using the model() method, e.g. on top of the routes.php file (or in the boot() method of RouteServiceProvider if you use route caching):

Route::model('mymodel', 'App\MyModel');

This way you can reference a placeholder in your routes (edit/{mymodel})

Next, simply import the RoutesWithFakeIds trait into your model:

use Illuminate\Database\Eloquent\Model;
use Propaganistas\LaravelFakeId\RoutesWithFakeIds;

class MyModel extends Model {

  use RoutesWithFakeIds;

}

All routes generated for this model will now automatically contain obfuscated IDs and incoming requests to {mymodel} routes containing obfuscated IDs will be handled correctly.

FAQ

Why didn't you implement Hashids instead of Optimus?

PERFORMANCE! Optimus is based on Knuth's multiplicative hashing method and proves to be quite faster than Hashids. It's even mentioned on Hashids' own website.