<?php
namespace Fury\Modules\Router;
interface RouterInterface{
/**
* Method for add new route by GET vars
*
* @method get
*
* @param array $route [Array with vars names]
* @param $action [anon func or string name of function or Classname@methodname]
*
* @example get(['id', 'post'], 'Entry@article') [If exists variables 'id' and 'post' - must be call Entry class and article method]
*
* @return void
*/
public function get($route, $action);
/**
* [Method for add new route by POST vars]
*
* @method post
*
* @param array $route [Array with vars names]
* @param $action [anon func or string name of function or Classname@methodname]
*
* @example post(['id', 'post'], 'Entry@article') [If exists variables 'id' and 'post' - must be call Entry class and article method]
*
* @return void
*/
public function post($route, $action);
/**
* [Add new route by URI string]
*
* @method uri
*
* @param string $route [String with path like '/post/id/$post_id']
* @param $action [anon func or string name of function or Classname@methodname]
*
* @return void
*/
public function uri($route, $action);
/**
* Get current routes map
*
* @method get_routes_map
*
* @return [array] [Routes map]
*/
public function get_routes_map();
/**
* Start Routing by GET/POST vars and URI
*
* @method start_routing
*
* @return [void]
*/
public function start_routing();
/**
* Get route by action.
*
* @method route_to
*
* @param String $action Controller in string
*
* @example route_to('Welcome@home') [return like "/home"]
*
* @return [string]
*/
public function route_to(String $action);
/**
* Get URL to action. With params or without params
*
* @method urlto
*
* @param String $action Controller in string
* @param Array $params [description]
*
* @example urlto('Post@article', [id => 23]) [return like "/post/post_id/23"]
*
* @return string
*/
public function urlto(String $action, Array $params = []);
}