The main routing is done in index.php file at the top directory of the project
The available methods are get, post, delete, put.
chdir (dirname (__FILE__));
$rc = include_once ("domframework/route.php");
if ($rc === false)
  die ("Please install the domframework !");
session_start ();
$route = new Domframework\Route ();
$route
// Use the GET method and without URL parameter
->get ("", function () use ($route)
{
  $route->redirect ("/ipsets", "");
})
// Use the GET method and with URL parameter "ipsets"
->get ("ipsets", function () use ($route)
{
  // List all the defined IPSets, with the menu to create/edit/delete one
  $route->viewMethod = "listing";
  $route->title = _("Defined ipsets");
  $ipsetsObj = new \controllers\ipsets ();
  return array ("ipsets"=>$ipsetsObj->listSets ());
})
// Use the POST method and with URL parameter "ipsets/add"
->post ("ipsets/add", function () use ($route)
{
  // Create really a new ipset
  $ipsetsObj = new \controllers\ipsets ();
  $form = new Domframework\Form ();
  $values = $form->values ();
  $errors = $ipsetsObj->verify ($values);
  $form->saveValuesErrors ($values, $errors);
  if (count ($errors)) $route->redirect ("/ipsets/add");
  $ipsetsObj->createSet ($values["setname"], $values["typename"]);
  $form->saveValuesErrorsReset ();
  $route->redirect ("/ipsets", "");
});$route
->get ("zone/{zone}/{viewname}/add(\?{fill})?",
function ($zone, $viewname, $fill) use ($route)
{
  // Use the $zone, $viewname, $fill variables from the URL
  // The fill parameter is optional, and may return null
}
');Activate the debug by using :
$route = new Domframework\Route ();
$route->debug = 1;Namespace Domframework
/** The routing module, base of the DomFramework
/** Allow slashes in the url when matching the regex
/** Authentication URL used if a 401 error is raised. If none is defined, just display a "Unauthorized" message
/** The debug mode : 0:NoDebug, 1:routing, 2:more debug (developpement)
/** Provide the the class catch errors in routing. Must be provided in an array(class, method);
/** Filename in views containing the HTML layout. Without .html at the end
/** The matching route comparison
/** The method used to ask the page
/** The module name
/** Output type to no previous catched renderer (allow : json, xml, txt html)
/** Preroute used in modules
/** Ratelimit the errors in route.php to not allow the hackers to brute force the backend. The objct can be put to null to disable the feature
/** Array to search/replace
/** Title by default : space to be compatible with HTML5
/** Array to variable definition
/** Filename of class containing the presentation layer
/** Classname containing the error layer
/** Method apply to class object to display the error
/** Method apply to class object to display the $result
/** The route constructor : initialize the parameters
/** Return the baseURL of the site Always finish with a slash@param string|null $moduleThe module name (if thereis one)@param boolean|null $absoluteReturn the baseURL in absolute@returnstring The URL base
/**
 Return the baseURL of the module
 Always finish with a slash
 @return string The baseURL for the module
/**
 Return the baseURL for a resource (add a index.php?url= if there is no
 mod_rewrite support. Used to link to modules in the HTML page.
 The baseURL is the real base of the project, which is different when not
 using the mod_rewrite. They are equal when using the mod_rewrite
 @return string The baseURL for the resource
/**
 Define the base URL of the site
 @param string $baseURL The base URL of the site
/**
 Get / Set the debug level
 @param integer|null $val The value to set. If null, will return the actual
 value
/**
 If the URL is corresponding with $url, and the method is DELETE, then the
 function is called.
 Ex. : $route->delete ('/hello/{name}', function ($name) {
         echo "Hello, $name";
       });
 @param string $route Route to check with the URL
 @param callable $function Function to be executed if the route match
 @return self Exit of the PHP after displaying the page if match, or return the
 route object to chain it whith the next test
/** Print an error page. If a custom page exists, use it@param object $eException to print@returnbool true after the error is displayed
/**
 If the URL is corresponding with $url, and the method is GET, then the
 function is called.
 Ex. : $route->get ('/hello/{name}', function ($name) {
         echo "Hello, $name";
       });
 @param string $route Route to check with the URL
 @param callable $function Function to be executed if the route match
 @return self Exit of the PHP after displaying the page if match, or return the
 route object to chain it whith the next test
/**
 Return the last valid get page to return
 @return string The last valid page URL or "" if not set
/**
 Redirect to last valid get page if defined
 @return mixed Exit from PHP after redirect or null if the last valid page is not
 defined
/** Do the mapping between the url and the route : call the function if thereis a match@param string $routeRoute to check with the URL@param callable $functionFunction to be executed if the route match@returnself Exit of the PHP after displaying the page if match, or return the route object to chain it whith the next test
/** Return the mached route search
/**
 Return the HTTP method used to connect to the page
 Can be override by a _METHOD parameter provided in POST
 @return string the method used to connect
 @throws an exception in case of error
/**
 Allow multiple methods to execute the function if the route is
 corresponding to the URL.
 Ex. : $route->multi("get,post,put,delete,options", '/hello/{name}',
                   function ($name) {
         echo "Hello, $name";
       });
 @param string $methods The allowed methods, separated by commas (,)
 @param string $route Route to check with the URL
 @param callable $function Function to be executed if the route match
 @return self Exit of the PHP after displaying the page if match, or return the
 route object to chain it whith the next test
/**
 If the URL is corresponding with $url, and the method is OPTIONS, then the
 function is called.
 Ex. : $route->options ('/hello/{name}', function ($name) {
         echo "Hello, $name";
       });
 @param string $route Route to check with the URL
 @param callable $function Function to be executed if the route match
 @return self Exit of the PHP after displaying the page if match, or return the
 route object to chain it whith the next test
/**
 If the URL is corresponding with $url, and the method is POST, then the
 function is called.
 Ex. : $route->post ('/hello/{name}', function ($name) {
         echo "Hello, $name";
       });
 @param string $route Route to check with the URL
 @param callable $function Function to be executed if the route match
 @return self Exit of the PHP after displaying the page if match, or return the
 route object to chain it whith the next test
/**
 If the URL is corresponding with $url, and the method is PUT, then the
 function is called.
 Ex. : $route->put ('/hello/{name}', function ($name) {
         echo "Hello, $name";
       });
 @param string $route Route to check with the URL
 @param callable $function Function to be executed if the route match
 @return self Exit of the PHP after displaying the page if match, or return the
 route object to chain it whith the next test
/** Do all the routing with redirections $destURL can be absolute or relative. - absolute : "/main" redirect to "baseURL/mail" - relative : "main" redirect to "./main" If module is set, the site is modular and a directory is named with module name@param string $destURLDo a redirection of the HTTP page@param string|null $moduleThe module name@param boolean|null $permanentPermanent redirect (false by default)@returnmixed mixed Exit of the PHP after doing the redirection
/** Return the complete URL used to see this page@param boolean|null $absoluteReturn the absolute URL@returnstring the complete URL used to see this page