PHP code example of celiovmjr / simplerouter

1. Go to this page and download the library: Download celiovmjr/simplerouter 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/ */

    

celiovmjr / simplerouter example snippets


// It's this simple
$router = new Router();

$router->post('/users', function(Request $request) {
    $validated = $request->validated([
        'name' => ');



use SimpleRouter\Application\Router;
use SimpleRouter\Application\Http\{Request, Response};

$router = new Router();

$router->get('/hello/{name}', function(Request $request) {
    $name = $request->input('name');
    return Response::json(['message' => "Hello, {$name}!"]);
});

$router->run();

$router->post('/register', function(Request $request) {
    $validated = $request->validated([
        'name' => '8',
        'age' => ' => $validated
    ], 201);
});

use SimpleRouter\Application\Middleware\Builtin\{
    CorsMiddleware,
    RateLimitMiddleware,
    LoggingMiddleware
};

$router->group([
    'prefix' => '/api',
    'middleware' => [
        CorsMiddleware::production(['https://app.example.com']),
        RateLimitMiddleware::api(),
        LoggingMiddleware::production(__DIR__ . '/logs/api.log')
    ]
], function($router) {
    $router->get('/users', [UserController::class, 'index']);
    $router->post('/users', [UserController::class, 'store']);
});

// HTTP Methods
$router->get('/users', $handler);
$router->post('/users', $handler);
$router->put('/users/{id}', $handler);
$router->delete('/users/{id}', $handler);

// Typed Parameters
$router->get('/users/{id:int}', $handler);
$router->get('/posts/{uuid:uuid}', $handler);
$router->get('/blog/{slug:slug}', $handler);

// Route Groups
$router->group(['prefix' => '/api/v1'], function($router) {
    $router->get('/users', $handler);
});

// Named Routes
$router->get('/dashboard', $handler)->withName('dashboard');
$url = $router->route('dashboard');

$validated = $request->validated([
    'email' => '  'username' => '

// CORS
CorsMiddleware::production(['https://app.example.com']);

// Rate Limiting
RateLimitMiddleware::api();        // 100 req/min
RateLimitMiddleware::auth();       // 5 req/min
RateLimitMiddleware::perUser(1000, 60);

// Logging
LoggingMiddleware::production('/var/log/api.log');
LoggingMiddleware::debug('/var/log/debug.log');

class AuthMiddleware implements Middleware
{
    public function handle(Request $request, Closure $next): Response
    {
        // Authentication logic
        return $next($request);
    }
}

// Input
$request->input('name');
$request->all();
$request->only(['name', 'email']);
$request->validated($rules);

// Headers & Query
$request->header('Authorization');
$request->query('page', 1);

// Request Info
$request->method();
$request->ip();
$request->path();

// JSON
Response::json(['data' => 'value'], 200);

// HTML
Response::html('<h1>Hello</h1>');

// Redirect
Response::redirect('/dashboard');

// Fluent Interface
Response::make('OK')
    ->withStatus(201)
    ->withHeader('X-Custom', 'Value');

$router->get('/users', function(Request $request) {
    $page = $request->query('page', 1);
    $limit = $request->query('limit', 10);
    
    $users = User::paginate($page, $limit);
    
    return Response::json([
        'data' => $users,
        'page' => $page,
        'total' => User::count()
    ]);
});

$router->post('/login', function(Request $request) {
    $validated = $request->validated([
        'email' => 'ponse::json([
        'token' => $token,
        'expires_in' => 3600
    ]);
});

$router->post('/upload', function(Request $request) {
    $file = $request->file('document');
    
    if ($file && $file->isValid()) {
        $path = $file->store('uploads');
        return Response::json(['path' => $path], 201);
    }
    
    return Response::json(['error' => 'Invalid file'], 400);
});

src/
├── Domain/              # Business logic
│   ├── Contracts/       # Interfaces (Middleware, ValidationRule, Validator)
│   ├── Entities/        # Domain entities (Route, RouteCollection)
│   └── ValueObjects/    # Value objects (HttpMethod, Uri)
└── Application/         # Application logic
    ├── Router.php       # Main router
    ├── Http/            # Request/Response
    ├── Validation/      # Validation system
    │   ├── RequestValidator.php
    │   ├── RuleParser.php
    │   ├── ValidationResult.php
    │   └── Rules/       # Individual rule files (17 rules)
    ├── Middleware/      # Middleware pipeline
    │   ├── MiddlewarePipeline.php
    │   └── Builtin/     # CorsMiddleware, RateLimitMiddleware, LoggingMiddleware
    └── Exceptions/      # Custom exceptions