- parse_str: documentation ( source)
- print_r: documentation ( source)
- implode: documentation ( source)
- parse_url: documentation ( source)
<?php
// request to php with type
$requestedUri = $_SERVER['REQUEST_URI'] = 'http://www.testing.com/login';
$requestedUriWithQuery = $requestedUri . '?name=adam&password=heheszki';
// parse request
$parsed = parse_url($requestedUriWithQuery);
$parsedQuery = [];
parse_str($parsed['query'], $parsedQuery);
// check request
print_r([
$parsed,
$parsedQuery
]);
// controllers
$controllers = [
'/login' =>
(new class {
public function action($request)
{
return "LOGIN " . implode(", ", $request);
}
}),
'/' =>
( new class {
public function action($request)
{
return "Witaj " . $request["name"];
}
}),
];
// check controllers
if(array_key_exists($parsed["path"], $controllers )){
echo $controllers [ $parsed['path'] ]->action($parsedQuery);
}