MarkBased.php 757 B

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