You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
754 B

8 years ago
  1. <?php
  2. namespace FastRoute\Dispatcher;
  3. class GroupCountBased extends RegexBasedAbstract {
  4. public function __construct($data) {
  5. list($this->staticRouteMap, $this->variableRouteData) = $data;
  6. }
  7. protected function dispatchVariableRoute($routeData, $uri) {
  8. foreach ($routeData as $data) {
  9. if (!preg_match($data['regex'], $uri, $matches)) {
  10. continue;
  11. }
  12. list($handler, $varNames) = $data['routeMap'][count($matches)];
  13. $vars = [];
  14. $i = 0;
  15. foreach ($varNames as $varName) {
  16. $vars[$varName] = $matches[++$i];
  17. }
  18. return [self::FOUND, $handler, $vars];
  19. }
  20. return [self::NOT_FOUND];
  21. }
  22. }