diff options
author | Jonatas Miguel <jonatas.df.miguel@gmail.com> | 2012-08-06 16:42:50 +0200 |
---|---|---|
committer | Jonatas Miguel <jonatas.df.miguel@gmail.com> | 2012-08-06 16:42:50 +0200 |
commit | c0d98b296186e6206dfa88476199559e630d06d0 (patch) | |
tree | d12dab9d4a81dfad6744bc36012d6d23387e8e92 /application/core/MY_Router.php | |
parent | 6a656fe2671f868f15eb54548a870a2668c4285d (diff) |
New optional routing system, v3
Diffstat (limited to 'application/core/MY_Router.php')
-rw-r--r-- | application/core/MY_Router.php | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/application/core/MY_Router.php b/application/core/MY_Router.php deleted file mode 100644 index 2a20f579f..000000000 --- a/application/core/MY_Router.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); - -class MY_Router extends CI_Router { - /** - * This version of _parse_routes acts the same as the older version - * except that it now allows for callbacks to be used as an alternative - * to the original route styles. Backreferences are set to the - * parameters of the callback. Note: Remember to give default values to - * the parameters that can be empty. - */ - function _parse_routes() - { - // Turn the segment array into a URI string - $uri = implode('/', $this->uri->segments); - - // Is there a literal match? If so we're done - if (isset($this->routes[$uri])) - { - return $this->_set_request(explode('/', $this->routes[$uri])); - } - - // Loop through the route array looking for wild-cards - foreach ($this->routes as $key => $val) - { - // Convert wild-cards to RegEx - $key = str_replace(':any', '.+', str_replace(':num', '[0-9]+', $key)); - - // Does the RegEx match? - if (preg_match('#^'.$key.'$#', $uri)) - { - // Are we using a callback? - $callable = is_callable($val); - - // Determine the appropriate preg_replace to use. - $preg_replace_type = $callable? 'preg_replace_callback': 'preg_replace'; - - // Are we using callbacks to process the matches? - if($callable){ - $val = function($matches)use($val){ - // Remove the string we are matching against from the matches array. - array_shift($matches); - - // Distribute the matches to the arguments of the user's callback. - return call_user_func_array($val, $matches); - }; - } - - // Do we have a back-reference? - if ($callable OR (strpos($val, '$') !== FALSE AND strpos($key, '(') !== FALSE)) - { - $val = call_user_func($preg_replace_type, '#^'.$key.'$#', $val, $uri); - } - - return $this->_set_request(explode('/', $val)); - } - } - - // If we got this far it means we didn't encounter a - // matching route so we'll set the site default route - $this->_set_request($this->uri->segments); - } -}
\ No newline at end of file |