- 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=password';
// 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 "HOME " . implode(", ", $request);
}
},
];
// check controllers
if(array_key_exists($parsed["path"], $controllers )){
echo $controllers [ $request['path'] ]->action($parsedQuery);
}