Example #1
0
 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);
 }