public static function fetchPlaceholder(Route $route, $path) { $origin = $route->getOrigin(); $params = self::extractPlaceholder($origin); $segments = explode('/', $path); $numeric = $params ? array_slice($segments, (int) min($params)) : []; foreach ($params as $name => $index) { if (isset($segments[$index])) { $params[$name] = $segments[$index]; } else { $params[$name] = null; } } $wildcard = $route->getWildcard(); if (null !== $wildcard) { $slice = substr($path, strlen($route->getPath())); $slice = array_values(array_filter(explode('/', $slice))); $params[$wildcard] = $slice; } $route->setParams($params + $numeric); }