Create Class Rules
You can create custom class rules with two main options: a generator class, or ad-hoc.
Create Generator Class
The generator class is the preferred method of adding new rules. Generator classes live in one location, so they promote good code maintenance.
Add A Generator
First decide where you will place your custom generators. For the purpose of this example, we will use app/Providers/RouteToClass/
to store all of our generators.
<?php
namespace App\Providers\RouteToClass;
use Zschuessler\RouteToClass\Generators\GeneratorAbstract;
class UserTypeGenerator extends GeneratorAbstract
{
public function generateClassName()
{
// Use your own logic here to determine user type
$userType = 'admin';
return 'user-' . $userType;
}
}
As you can see above, all you need to do is extend the GeneratorAbstract
class and implement a generateClassName
method which returns a string. Simple!
Register Generator in Config
Now add the following line to the route2class.php
configuration:
App\Providers\RouteToClass\UserTypeGenerator::class,
See Included Example Generator
Example generator included in the package is here:
https://github.com/zschuessler/laravel-route-to-class/blob/master/src/Generators/FullRoutePath.php
Ad-Hoc Implementations
You aren't forced to use a class generator, although it's preferred. Simply call the addClass
method of the package facade to add any number of custom classes.
The example below adds classes based on a route - but you can add these calls anywhere in your application (controllers, models, etc):
<?php
Route::get('/', function () {
// Add static class as string
Route2Class::addClass('homepage');
// Add class from anonymous function
Route2Class::addClass(function() {
// Your custom logic goes here
return 'my-anon-class-name';
});
return view('welcome');
});
Updated less than a minute ago