| Conditions | 4 |
| Paths | 2 |
| Total Lines | 18 |
| Code Lines | 12 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
| 1 | <?php |
||
| 19 | public function parse($route, $handler) |
||
| 20 | { |
||
| 21 | $params = []; |
||
| 22 | |||
| 23 | $leftPos = strpos($route, $this->leftSeparator); |
||
| 24 | $rightPos = strpos($route, $this->rightSeparator); |
||
| 25 | while (($leftPos || $rightPos) !== false && $rightPos > $leftPos) { |
||
| 26 | $rule = substr($route, $leftPos, $rightPos - $leftPos + 1); |
||
| 27 | list($paramName, $regex) = explode(':', trim($rule, '{}'), 2); |
||
| 28 | $route = str_replace($rule, sprintf('(%s)', $regex), $route); |
||
| 29 | $params[$paramName] = $paramName; |
||
| 30 | |||
| 31 | $leftPos = strpos($route, $this->leftSeparator); |
||
| 32 | $rightPos = strpos($route, $this->rightSeparator); |
||
| 33 | } |
||
| 34 | |||
| 35 | return new Route($route, $handler, $params); |
||
| 36 | } |
||
| 37 | } |
||
| 38 |