test-specific-setup.php
<?php
/**
* Special configurations to use for specific tests
*
* @var \Lia $lia
*/
$lia->hook(\Lia\Events::NoHttpRoutes->value,
function(\Lia\Http\Request $request, \Lia\Http\Response $response){
if ($request->url == '/custom-noroute-handler/'){
$response->body = 'CUSTOM NO ROUTE HANDLER';
$response->headers = [];
}
}
);
if ($_SERVER['REQUEST_URI'] == '/delete-default-noroute-handler/'){
// delete existing event handlers for route-not-found
foreach ($lia->events[\Lia\Events::NoHttpRoutes->value] as $index => $callable){
if (is_array($callable)
&& is_object($callable[0])
&& get_class($callable[0]) == \Lia\Addon\Router::class){
unset($lia->events[\Lia\Events::NoHttpRoutes->value][$index]);
}
else if (!is_array($callable)) {
unset($lia->events[\Lia\Events::NoHttpRoutes->value][$index]);
}
}
$lia->events[\Lia\Events::NoHttpRoutes->value] = array_values($lia->events[\Lia\Events::NoHttpRoutes->value]);
echo json_encode($lia->events[\Lia\Events::NoHttpRoutes->value]);
return;
}
if ($_SERVER['REQUEST_URI'] == '/handle-multiple-routes/'){
$lia->ready();
$lia->addon('lia:router')->addRoute('/handle-multiple-routes/',
function(\Lia\Http\Route $route){
echo 'first route';
}
);
$lia->addon('lia:router')->addRoute('/handle-multiple-routes/',
function(\Lia\Http\Route $route){
echo 'second route';
}
);
$lia->hook(\Lia\Events::MultipleHttpRoutes->value,
function(\Lia\Http\Request $request, \Lia\Http\Response $response, array $routes){
$responder = new \Lia\Http\Responder();
if ($_GET['route_index'] == 0){
$responder->respond_to_route($request, $response, $routes[0]);
} else if ($_GET['route_index'] == 1){
$responder->respond_to_route($request, $response, $routes[1]);
}
}
);
}