Routing, rerouting and dispatching. See Routing Requests for some examples.
Add a route with the specified $path and $resolver function. $path can contain parameters, specified by a single word in {braces}. E.g. /blog/{keyword}. Each parameter is passed to the resolver function as its own argument.
If a resolver returns false, Pagenode will search and execute a 404 handler (a route with the path /*) or execute its own 404 handler.
Internally re-route the $sourcePath to $targetPath.
Matching parameters can be passed on to the target URL by specifying the parameter index in braces. Use {1} for the first parameter. E.g.:
reroute('/legacy-url/blog-post-{id}-{keyword}', '/blog/{2}');
This will re-route /legacy-url/blog-post-42-pagenode to /blog/pagenode.
Convenience function to redirect a user via header('Location: …'). The optional $params will be appended to the path as URL query parameters. This function immediately exits the current script. E.g.:
route('/legacy-url/blog-post-{id}-{keyword}', function($id, $kw){
redirect('/blog/'.$kw, ['from' => $id]);
});
This will redirect /legacy-url/blog-post-42-pagenode to /blog/pagenode?from=42.
Tests all routes added by route() with the specified $request until a matching route is found and the resolver is called.
If no $request is specified, the request is automatically determined from the $_SERVER['REQUEST_URI'].