Routing & Dispatching
Simple Implementation
Routers
This class can be used to add routes and what that route will do. For example:
$router = new Router();
$router->get('foo', function() { echo "GET foo\n"; });<?php
class Router {
private $routes = [
'get' => [],
'post' => []
];
function get($pattern, callable $handler) {
$this->routes['get'][$pattern] = $handler;
return $this;
}
function post($pattern, callable $handler) {
$this->routes['post'][$pattern] = $handler;
return $this;
}
function match(Request $request) {
$method = strtolower($request->getMethod());
if (!isset($this->routes[$method])) {
return false;
}
$path = $request->getPath();
foreach ($this->routes[$method] as $pattern => $handler) {
if ($pattern === $path) {
return $handler;
}
}
return false;
}
}Requests
This class is used to handle requests, and return methods and paths.
Dispatchers
Add route using router class function GET and POST.
The dispatcher will use router class, and MATCH with the routes from REQUEST.
If there is a route, the function or handler will be ran.
References
Last updated
Was this helpful?