Exemplo n.º 1
0
 public function testSetupRoutes()
 {
     HalfMoon\Router::clearRoutes();
     $this->assertEquals(0, count(HalfMoon\Router::getRoutes()));
     $this->assertEquals(0, count(HalfMoon\Router::getRootRoutes()));
     $added_routes = 0;
     $added_root_routes = 0;
     HalfMoon\Router::addRoute(array("url" => "logout", "controller" => "login", "action" => "logout2", "conditions" => array("hostname" => "/^www(\\d+)\\.example\\.(com|net)\$/i")));
     $added_routes++;
     HalfMoon\Router::addRoute(array("url" => "logout", "controller" => "login", "action" => "logout"));
     $added_routes++;
     HalfMoon\Router::addRoute(array("url" => "*globby", "controller" => "login", "action" => "globtest", "conditions" => array("globby" => "/^globte.t\$/")));
     $added_routes++;
     HalfMoon\Router::addRoute(array("url" => "stub/:controller/:action/:id", "action" => "stub_:action"));
     $added_routes++;
     HalfMoon\Router::addRoute(array("url" => "zero_test/:id", "controller" => "zero_test", "action" => "show", "conditions" => array("id" => "/^[0-9]+\$/")));
     $added_routes++;
     HalfMoon\Router::addRoute(array("url" => ":tag/:message", "controller" => "messages", "action" => "show_tagged", "conditions" => array("tag" => "/^[A-Za-z0-9_\\-]+\$/", "message" => "/^\\d+\$/")));
     $added_routes++;
     HalfMoon\Router::addRoute(array("url" => ":controller/:action/*globbed", "conditions" => array("controller" => "someglob", "action" => "/^[a-z]+\$/")));
     $added_routes++;
     HalfMoon\Router::addRootRoute(array("controller" => "root2", "conditions" => array("hostname" => "www.example2.com")));
     $added_root_routes++;
     HalfMoon\Router::addRootRoute(array("controller" => "root"));
     $added_root_routes++;
     $this->assertEquals($added_routes, count(HalfMoon\Router::getRoutes()));
     $this->assertEquals($added_root_routes, count(HalfMoon\Router::getRootRoutes()));
 }
Exemplo n.º 2
0
	for empty urls ("/"), only root routes (added with addRootRoute) will be
	matched against.

	a specific route example to only match ids that are valid numbers:

		HalfMoon\Router::addRoute(array(
			"url" => "posts/:id",
			"controller" => "posts",
			"action" => "show",
			"conditions" => array("id" => '/^\d+$/'),
		));

	a root route to match "/":

		HalfMoon\Router::addRootRoute(array(
			"controller" => "posts"
		));

	another root route on a specific virtual host to map to a different action
	(this would have to be defined before the previous root route, since the
	previous one has no conditions and would match all root urls):

		HalfMoon\Router::addRootRoute(array(
			"controller" => "posts",
			"action" => "devindex",
			"conditions" => array("hostname" => "dev"),
		));
*/
/* generic catch-all route to match everything else */
HalfMoon\Router::addRoute(array("url" => ":controller/:action/:id"));