Created
April 30, 2025 13:33
-
-
Save AdamNatad/c73083d9f4d9d36eae6e28239a86a63d to your computer and use it in GitHub Desktop.
Laravel RouteServiceProvider - Improved Route Files
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Providers; | |
use Illuminate\Cache\RateLimiting\Limit; | |
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; | |
use Illuminate\Http\Request; | |
use Illuminate\Support\Facades\RateLimiter; | |
use Illuminate\Support\Facades\Route; | |
class RouteServiceProvider extends ServiceProvider | |
{ | |
/** | |
* The path to your application's "home" route. | |
* | |
* Typically, users are redirected here after authentication. | |
* | |
* @var string | |
*/ | |
//Redirect After Login Home | |
public const HOME = '/'; | |
/** | |
* Define your route model bindings, pattern filters, and other route configuration. | |
*/ | |
public function boot(): void | |
{ | |
RateLimiter::for('api', function (Request $request) { | |
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); | |
}); | |
$this->routes(function () { | |
// API Routes | |
Route::middleware('api') | |
->prefix('api') | |
->group(function () { | |
require base_path('routes/api.php'); | |
// Load all API route files, including subfolders | |
foreach (glob(base_path('routes/api/**/*.php')) as $file) { | |
require $file; | |
} | |
}); | |
// Web Routes | |
Route::middleware('web') | |
->group(function () { | |
require base_path('routes/web.php'); | |
// Load all Web route files, including subfolders | |
foreach (glob(base_path('routes/web/**/*.php')) as $file) { | |
require $file; | |
} | |
}); | |
}); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment