ice framework documentation ice doc v1.11.0
  1. namespace Ice\Mvc\Route\Dispatcher;
  2.  
  3. use Ice\Mvc\Route\Dispatcher\Regex;
  4. use Ice\Mvc\FastRouter;
  5.  
  6. class GroupCount extends Regex
  7. {
  8. protected staticRouteMap { set };
  9. protected variableRouteData { set };
  10.  
  11. public function __construct(array data = [])
  12. {
  13. if count(data) {
  14. let this->staticRouteMap = data[0],
  15. this->variableRouteData = data[1];
  16. }
  17. }
  18.  
  19. protected function dispatchVariableRoute(routeData, uri)
  20. {
  21. var data, matches, handler, varName, varNames, vars;
  22. int i, j;
  23.  
  24. let matches = null;
  25.  
  26. for data in routeData {
  27. if !preg_match(data["regex"], uri, matches) {
  28. continue;
  29. }
  30.  
  31. let j = count(matches),
  32. handler = data["routeMap"][j][0],
  33. varNames = data["routeMap"][j][1];
  34.  
  35. let vars = [],
  36. i = 0;
  37.  
  38. for varName in varNames {
  39. let i++,
  40. vars[varName] = matches[i];
  41. }
  42.  
  43. return [FastRouter::FOUND, handler, vars];
  44. }
  45.  
  46. return [FastRouter::NOT_FOUND];
  47. }
  48. }