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 |