Route text: Root route works!';
if (Flight::request()->query->redirected) {
echo '
Redirected from /redirect route successfully!';
}
});
Flight::route('/querytestpath', function () {
echo 'Route text: This is query route
';
echo "Query parameters:
";
print_r(Flight::request()->query);
echo "";
}, false, "querytestpath");
// Test 2: Simple route
Flight::route('/test', function () {
echo 'Route text: Test route works!';
});
// Test 3: Route with parameter
Flight::route('/user/@name', function ($name) {
echo "Route text: Hello, $name!";
});
Flight::route('POST /postpage', function () {
echo 'Route text: THIS IS POST METHOD PAGE';
}, false, "postpage");
// Test 4: Grouped routes
Flight::group('/group', function () {
Flight::route('/test', function () {
echo 'Route text: Group test route works!';
});
Flight::route('/user/@name', function ($name) {
echo "Route text: There is variable called name and it is $name";
});
Flight::group('/group1', function () {
Flight::group('/group2', function () {
Flight::group('/group3', function () {
Flight::group('/group4', function () {
Flight::group('/group5', function () {
Flight::group('/group6', function () {
Flight::group('/group7', function () {
Flight::group('/group8', function () {
Flight::route('/final_group', function () {
echo 'Mega Group test route works!';
}, false, "final_group");
});
});
});
});
});
});
});
});
});
// Test 5: Route alias
Flight::route('/alias', function () {
echo 'Route text: Alias route works!';
}, false, 'aliasroute');
/** Middleware test */
include_once 'AuthCheck.php';
$middle = new AuthCheck();
// Test 6: Route with middleware
Flight::route('/protected', function () {
echo 'Route text: Protected route works!';
})->addMiddleware([$middle]);
// Test 7: Route with template
Flight::route('/template/@name', function ($name) {
Flight::render('template.phtml', ['name' => $name]);
});
Flight::route('/template-data/@data', function ($data) {
Flight::render('template.phtml', ['data' => $data]);
});
// Test 8: Throw an error
Flight::route('/error', function () {
trigger_error('This is a successful error');
});
// Test 10: Halt
Flight::route('/halt', function () {
Flight::halt(400, 'Halt worked successfully');
});
// Test 11: Redirect
Flight::route('/redirect', function () {
Flight::redirect('/?redirected=1');
});
// Test 12: Redirect with status code
Flight::route('/streamResponse', function () {
echo "Streaming a response";
for ($i = 1; $i <= 50; $i++) {
echo ".";
usleep(50000);
ob_flush();
}
echo "is successful!!";
})->stream();
// Test 12: Redirect with status code
Flight::route('/streamWithHeaders', function () {
echo "Streaming a response";
for ($i = 1; $i <= 50; $i++) {
echo ".";
usleep(50000);
ob_flush();
}
echo "is successful!!";
})->streamWithHeaders(['Content-Type' => 'text/html', 'status' => 200 ]);
// Test 14: Overwrite the body with a middleware
Flight::route('/overwrite', function () {
echo 'Route text: This route status is that it failed';
})->addMiddleware([new OverwriteBodyMiddleware()]);
// Test 15: UTF8 Chars in url
Flight::route('/わたしはひとです', function () {
echo 'Route text: This route status is that it succeeded はい!!!';
});
// Test 16: UTF8 Chars in url with utf8 params
Flight::route('/わたしはひとです/@name', function ($name) {
echo 'Route text: This route status is that it ' . ($name === 'ええ' ? 'succeeded' : 'failed') . ' URL Param: ' . $name . '';
});
// Test 17: Slash in param
Flight::route('/redirect/@id', function ($id) {
echo 'Route text: This route status is that it ' . ($id === 'before/after' ? 'succeeded' : 'failed') . ' URL Param: ' . $id . '';
});
Flight::set('test_me_out', 'You got it boss!'); // used in /no-container route
Flight::route('/no-container', ContainerDefault::class . '->testUi');
Flight::route('/dice', Container::class . '->testThePdoWrapper');
Flight::route('/Pascal_Snake_Case', Pascal_Snake_Case::class . '->doILoad');
}, [ new LayoutMiddleware() ]);
// Test 9: JSON output (should not output any other html)
Flight::route('/json', function () {
Flight::json(['message' => 'JSON renders successfully!']);
});
// Test 13: JSONP output (should not output any other html)
Flight::route('/jsonp', function () {
Flight::jsonp(['message' => 'JSONP renders successfully!'], 'jsonp');
});
Flight::route('/json-halt', function () {
Flight::jsonHalt(['message' => 'JSON rendered and halted successfully with no other body content!']);
});
// Download a file
Flight::route('/download', function () {
Flight::download('test_file.txt');
});
Flight::map('error', function (Throwable $e) {
echo sprintf(
<<<'HTML'
%sHTML, // phpcs:ignore $e->getMessage(), $e->getCode(), str_replace(getenv('PWD'), '***CONFIDENTIAL***', $e->getTraceAsString()) ); echo "