Phalcon\Mvc\Router is the standard framework router. Routing is the * process of taking a URI endpoint (that part of the URI which comes after the base URL) and * decomposing it into parameters to determine which module, controller, and * action of that controller should receive the request
* *
	 *
	 *	$router = new Phalcon\Mvc\Router();
	 *
	 *  $router->add(
	 *		"/documentation/{chapter}/{name}.{type:[a-z]+}",
	 *		array(
	 *			"controller" => "documentation",
	 *			"action"     => "show"
	 *		)
	 *	);
	 *
	 *	$router->handle();
	 *
	 *	echo $router->getControllerName();
	 *
	 *
	 */
	
	class Router implements \Phalcon\Mvc\RouterInterface, \Phalcon\DI\InjectionAwareInterface {
		const URI_SOURCE_GET_URL = 0;
		const URI_SOURCE_SERVER_REQUEST_URI = 1;
		protected $_dependencyInjector;
		protected $_uriSource;
		protected $_namespace;
		protected $_module;
		protected $_controller;
		protected $_action;
		protected $_params;
		protected $_routes;
		protected $_matchedRoute;
		protected $_matches;
		protected $_wasMatched;
		protected $_defaultNamespace;
		protected $_defaultModule;
		protected $_defaultController;
		protected $_defaultAction;
		protected $_defaultParams;
		protected $_removeExtraSlashes;
		protected $_notFoundPaths;
		protected $_isExactControllerName;
		/**
		 * \Phalcon\Mvc\Router constructor
		 *
		 * @param boolean $defaultRoutes
		 */
		public function __construct($defaultRoutes=null){ }
		/**
		 * Sets the dependency injector
		 *
		 * @param \Phalcon\DiInterface $dependencyInjector
		 */
		public function setDI($dependencyInjector){ }
		/**
		 * Returns the internal dependency injector
		 *
		 * @return \Phalcon\DiInterface
		 */
		public function getDI(){ }
		/**
		 * Get rewrite info. This info is read from $_GET['_url']. This returns '/' if the rewrite information cannot be read
		 *
		 * @return string
		 */
		public function getRewriteUri(){ }
		/**
		 * Sets the URI source. One of the URI_SOURCE_* constants
		 *
		 *
		 *	$router->setUriSource(Router::URI_SOURCE_SERVER_REQUEST_URI);
		 *
		 *
		 * @param string $uriSource
		 * @return \Phalcon\Mvc\Router
		 */
		public function setUriSource($uriSource){ }
		/**
		 * Set whether router must remove the extra slashes in the handled routes
		 *
		 * @param boolean $remove
		 * @return \Phalcon\Mvc\Router
		 */
		public function removeExtraSlashes($remove){ }
		/**
		 * Sets the name of the default namespace
		 *
		 * @param string $namespaceName
		 * @return \Phalcon\Mvc\Router
		 */
		public function setDefaultNamespace($namespaceName){ }
		/**
		 * Sets the name of the default module
		 *
		 * @param string $moduleName
		 * @return \Phalcon\Mvc\Router
		 */
		public function setDefaultModule($moduleName){ }
		/**
		 * Sets the default controller name
		 *
		 * @param string $controllerName
		 * @return \Phalcon\Mvc\Router
		 */
		public function setDefaultController($controllerName){ }
		/**
		 * Sets the default action name
		 *
		 * @param string $actionName
		 * @return \Phalcon\Mvc\Router
		 */
		public function setDefaultAction($actionName){ }
		/**
		 * Sets an array of default paths. If a route is missing a path the router will use the defined here
		 * This method must not be used to set a 404 route
		 *
		 *
		 * $router->setDefaults(array(
		 *		'module' => 'common',
		 *		'action' => 'index'
		 * ));
		 *
		 *
		 * @param array $defaults
		 * @return \Phalcon\Mvc\Router
		 */
		public function setDefaults($defaults){ }
		/**
		 * Handles routing information received from the rewrite engine
		 *
		 *
		 * //Read the info from the rewrite engine
		 * $router->handle();
		 *
		 * //Manually passing an URL
		 * $router->handle('/posts/edit/1');
		 *
		 *
		 * @param string $uri
		 */
		public function handle($uri=null){ }
		/**
		 * Adds a route to the router without any HTTP constraint
		 *
		 *
		 * $router->add('/about', 'About::index');
		 *
		 *
		 * @param string $pattern
		 * @param string/array $paths
		 * @param string $httpMethods
		 * @return \Phalcon\Mvc\Router\Route
		 */
		public function add($pattern, $paths=null, $httpMethods=null){ }
		/**
		 * Adds a route to the router that only match if the HTTP method is GET
		 *
		 * @param string $pattern
		 * @param string/array $paths
		 * @return \Phalcon\Mvc\Router\Route
		 */
		public function addGet($pattern, $paths=null){ }
		/**
		 * Adds a route to the router that only match if the HTTP method is POST
		 *
		 * @param string $pattern
		 * @param string/array $paths
		 * @return \Phalcon\Mvc\Router\Route
		 */
		public function addPost($pattern, $paths=null){ }
		/**
		 * Adds a route to the router that only match if the HTTP method is PUT
		 *
		 * @param string $pattern
		 * @param string/array $paths
		 * @return \Phalcon\Mvc\Router\Route
		 */
		public function addPut($pattern, $paths=null){ }
		/**
		 * Adds a route to the router that only match if the HTTP method is PATCH
		 *
		 * @param string $pattern
		 * @param string/array $paths
		 * @return \Phalcon\Mvc\Router\Route
		 */
		public function addPatch($pattern, $paths=null){ }
		/**
		 * Adds a route to the router that only match if the HTTP method is DELETE
		 *
		 * @param string $pattern
		 * @param string/array $paths
		 * @return \Phalcon\Mvc\Router\Route
		 */
		public function addDelete($pattern, $paths=null){ }
		/**
		 * Add a route to the router that only match if the HTTP method is OPTIONS
		 *
		 * @param string $pattern
		 * @param string/array $paths
		 * @return \Phalcon\Mvc\Router\Route
		 */
		public function addOptions($pattern, $paths=null){ }
		/**
		 * Adds a route to the router that only match if the HTTP method is HEAD
		 *
		 * @param string $pattern
		 * @param string/array $paths
		 * @return \Phalcon\Mvc\Router\Route
		 */
		public function addHead($pattern, $paths=null){ }
		/**
		 * Mounts a group of routes in the router
		 *
		 * @param \Phalcon\Mvc\Router\Group $route
		 * @return \Phalcon\Mvc\Router
		 */
		public function mount($group){ }
		/**
		 * Set a group of paths to be returned when none of the defined routes are matched
		 *
		 * @param array $paths
		 * @return \Phalcon\Mvc\Router
		 */
		public function notFound($paths){ }
		/**
		 * Removes all the pre-defined routes
		 */
		public function clear(){ }
		/**
		 * Returns the processed namespace name
		 *
		 * @return string
		 */
		public function getNamespaceName(){ }
		/**
		 * Returns the processed module name
		 *
		 * @return string
		 */
		public function getModuleName(){ }
		/**
		 * Returns the processed controller name
		 *
		 * @return string
		 */
		public function getControllerName(){ }
		/**
		 * Returns the processed action name
		 *
		 * @return string
		 */
		public function getActionName(){ }
		/**
		 * Returns the processed parameters
		 *
		 * @return array
		 */
		public function getParams(){ }
		/**
		 * Returns the route that matchs the handled URI
		 *
		 * @return \Phalcon\Mvc\Router\Route
		 */
		public function getMatchedRoute(){ }
		/**
		 * Returns the sub expressions in the regular expression matched
		 *
		 * @return array
		 */
		public function getMatches(){ }
		/**
		 * Checks if the router macthes any of the defined routes
		 *
		 * @return bool
		 */
		public function wasMatched(){ }
		/**
		 * Returns all the routes defined in the router
		 *
		 * @return \Phalcon\Mvc\Router\Route[]
		 */
		public function getRoutes(){ }
		/**
		 * Returns a route object by its id
		 *
		 * @param string $id
		 * @return \Phalcon\Mvc\Router\Route
		 */
		public function getRouteById($id){ }
		/**
		 * Returns a route object by its name
		 *
		 * @param string $name
		 * @return \Phalcon\Mvc\Router\Route
		 */
		public function getRouteByName($name){ }
		/**
		 * Returns whether controller name should not be mangled
		 */
		public function isExactControllerName(){ }
	}
}