Compartmentalized Routing

Submitted by rcoble - 7 years ago

An easy way to organize a large number of routes.

// Setup
// 1. Create a directory named "Routers" within the "app/Http" directory.
// 2. Create a file named "RouterInterface.php" within the "Routers" directory.
// 3. Create files for each division of routes. EX: "AuthRouter.php"


// Router interface (RouterInterface.php)
namespace App\Http\Routers;

interface RouterInterface {
    public static function setRoutes();
}


// AuthRouter (AuthRouter.php)
namespace App\Http\Routers;

use Route; // Route facade (Illuminate\Support\Facades\Route)

class AuthRouter implements RouterInterface {
    public static function setRoutes() {
        
        // login routes
        Route::get('login', 'AuthController@login');
        Route::post('login', 'AuthController@doLogin');
        
        // logout route
        Route::get('logout', 'AuthController@logout');
    }
}


// routes.php
// reference all your routers
use App\Http\Routers\AuthRouter;

// use your routers
AuthRouter::setRoutes();