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]); }); // 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'

500 Internal Server Error

%s (%s)

%s
HTML, $e->getMessage(), $e->getCode(), str_replace(getenv('PWD'), '***CONFIDENTIAL***', $e->getTraceAsString()) ); echo "
Go back"; }); Flight::map('notFound', function () { echo 'Route text: The requested URL was not found
'; echo "Go back"; }); Flight::map('start', function () { if (Flight::request()->url === '/dice') { $dice = new \Dice\Dice(); $dice = $dice->addRules([ PdoWrapper::class => [ 'shared' => true, 'constructParams' => [ 'sqlite::memory:' ] ] ]); Flight::registerContainerHandler(function ($class, $params) use ($dice) { return $dice->create($class, $params); }); } // Default start behavior now Flight::_start(); }); Flight::start();