-
- namespace Ice\Mvc\Route\Dispatcher;
-
- use Ice\Mvc\Route\Dispatcher\Regex;
- use Ice\Mvc\FastRouter;
-
- class GroupCount extends Regex
- {
- protected staticRouteMap { set };
- protected variableRouteData { set };
-
- public function __construct(array data = [])
- {
- if count(data) {
- let this->staticRouteMap = data[0],
- this->variableRouteData = data[1];
- }
- }
-
- protected function dispatchVariableRoute(routeData, uri)
- {
- var data, matches, handler, varName, varNames, vars;
- int i, j;
-
- let matches = null;
-
- for data in routeData {
- if !preg_match(data["regex"], uri, matches) {
- continue;
- }
-
- let j = count(matches),
- handler = data["routeMap"][j][0],
- varNames = data["routeMap"][j][1];
-
- let vars = [],
- i = 0;
-
- for varName in varNames {
- let i++,
- vars[varName] = matches[i];
- }
-
- return [FastRouter::FOUND, handler, vars];
- }
-
- return [FastRouter::NOT_FOUND];
- }
- }