PHP code example of geckods / laravel-routes

1. Go to this page and download the library: Download geckods/laravel-routes library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

geckods / laravel-routes example snippets


return [
    // Path to search for route classes (supports glob patterns)
    'path' => app_path('Http/**/*.php'),
    
    // Namespace prefix for discovered route classes
    'prefix_namespace' => 'App\\',
    
    // Additional route classes not found in the path above
    'other_routes' => [],
];



use GeckoDS\LaravelRoutes\Routes\RouteController;

// Load and execute all routes
(new RouteController())->handle();



namespace App\Http\Routes;

use Illuminate\Support\Facades\Route;
use GeckoDS\LaravelRoutes\Routes\AbstractRouteController;

class UserRoutes extends AbstractRouteController
{
    public function handle()
    {
        Route::middleware('auth:sanctum')->group(function () {
            Route::get('/users', [UserController::class, 'index']);
            Route::post('/users', [UserController::class, 'store']);
            Route::get('/users/{id}', [UserController::class, 'show']);
            Route::put('/users/{id}', [UserController::class, 'update']);
            Route::delete('/users/{id}', [UserController::class, 'destroy']);
        });
    }
}



namespace App\Http\Routes;

use Illuminate\Support\Facades\Route;
use GeckoDS\LaravelRoutes\Routes\AbstractRouteController;

class PublicRoutes extends AbstractRouteController
{
    public function handle()
    {
        Route::group(['middleware' => 'throttle:60,1'], function () {
            Route::get('/posts', [PostController::class, 'index']);
            Route::get('/posts/{id}', [PostController::class, 'show']);
        });
    }
}

// Single directory (non-recursive)
'path' => app_path('Http/Routes/*.php'),

// Recursive directory
'path' => app_path('Http/**/*.php'),

// Specific pattern
'path' => app_path('Http/Routes/*Routes.php'),

// Custom location
'path' => app_path('Features/*/Routes/*.php'),

// For classes in App\Http\Routes\*
'prefix_namespace' => 'App\\Http\\Routes\\',

// For classes in App\*
'prefix_namespace' => 'App\\',

// For classes in App\Features\*\Routes\*
'prefix_namespace' => 'App\\Features\\',

'other_routes' => [
    App\Http\Routes\AdminRoutes::class,
    App\Http\Routes\WebhookRoutes::class,
],



use GeckoDS\LaravelRoutes\Routes\RouteController;

Route::prefix('api')->group(function () {
    (new RouteController())->handle();
});

'path' => app_path('Http/**/*.php'),
'prefix_namespace' => 'App\\',



namespace App\Http\Routes;

use GeckoDS\LaravelRoutes\Routes\AbstractRouteController;
use Illuminate\Support\Facades\Route;

class FeatureRoutes extends AbstractRouteController
{
    public function handle()
    {
        if (config('features.new_api')) {
            Route::prefix('v2')->group(function () {
                Route::get('/data', [DataController::class, 'index']);
            });
        }
    }
}



namespace App\Http\Routes;

use GeckoDS\LaravelRoutes\Routes\AbstractRouteController;
use Illuminate\Support\Facades\Route;

class AdminRoutes extends AbstractRouteController
{
    public function handle()
    {
        Route::prefix('admin')->middleware('admin')->group(function () {
            Route::prefix('users')->group(function () {
                Route::get('/', [AdminUserController::class, 'index']);
                Route::post('/', [AdminUserController::class, 'store']);
            });
            
            Route::prefix('settings')->group(function () {
                Route::get('/', [AdminSettingsController::class, 'index']);
                Route::post('/', [AdminSettingsController::class, 'update']);
            });
        });
    }
}
bash
php artisan vendor:publish --provider='GeckoDS\LaravelRoutes\Providers\LaravelRoutesProvider' --tag='config'
json
{
    "scripts": {
        "post-update-cmd": [
            "@php artisan vendor:publish --provider='GeckoDS\\LaravelRoutes\\Providers\\LaravelRoutesProvider' --tag='config' --ansi"
        ]
    }
}

app/
├── Http/
│   ├── Controllers/
│   │   ├── PostController.php
│   │   ├── UserController.php
│   │   └── CommentController.php
│   └── Routes/
│       ├── PostRoutes.php
│       ├── UserRoutes.php
│       └── CommentRoutes.php
└── Features/
    ├── Notifications/
    │   ├── Controllers/
    │   │   └── NotificationController.php
    │   └── Routes/
    │       └── NotificationRoutes.php
    └── Payments/
        ├── Controllers/
        │   └── PaymentController.php
        └── Routes/
            └── PaymentRoutes.php

routes/
├── api.php
├── web.php
└── console.php