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